【发布时间】:2016-08-28 15:44:00
【问题描述】:
我已经使用 Haskell 大约一年了,因为我正在写一篇关于它的论文。在前几章中我谈到了模式匹配,并参考了函数
fst :: (a,b) -> a
来证明它的用处。在本文中,我说在不使用模式匹配的情况下实现fst“会更加复杂”。出于兴趣,我开始考虑如何做到这一点,但似乎想不出任何不以某种方式使用模式匹配的方式,我能想到的最好的事情是
fst' tuple = let (first, second) = tuple
in first
但这本质上仍然使用模式匹配!有没有办法在没有模式匹配的情况下访问元组的内部值?
【问题讨论】:
-
仅当您将对定义为
type Tuple a b = forall r . (a -> b -> r) -> r。
标签: haskell pattern-matching tuples