我已经使用Haskell大约一年了,因为我正在写一篇论文。在第一章的其中一章中,我将讨论模式匹配,并参考函数
fst :: (a,b) -> a
证明它的用处。在文中我说它会更复杂"在不使用模式匹配的情况下实现fst
。出于兴趣,我开始考虑如何做到这一点,但似乎没有想到任何方式不会以某种方式使用模式匹配,我能想到的最好的事情是
fst' tuple = let (first, second) = tuple
in first
但基本上仍然使用模式匹配!有没有办法在没有模式匹配的情况下访问元组的内部值?
答案 0 :(得分:5)
提取数据构造函数参数的唯一方法是对其进行模式匹配。你可以手动进行模式匹配,或者调用一个函数(如fst
)来为你做这个 - 但不管怎样,模式匹配都在某处完成。