【发布时间】:2011-12-15 18:23:35
【问题描述】:
Haskell 新手非常抱歉,如果这是非常基本的
这个例子取自《Real World Haskell》——
ghci> :type fst
fst :: (a, b) -> a
它们显示fst 函数的类型,然后在它后面加上这一段...
“fst 的结果类型是 a。我们已经提到参数多态性使实际类型无法访问:fst 没有足够的信息来构造值a 类型的,也不能将 a 变成 b。所以唯一可能的有效行为(省略无限循环或崩溃)它可以有的是返回对的第一个元素。”
我觉得我错过了该段落的基本点,也许还有一些关于 Haskell 的重要内容。为什么fst 函数不能返回类型b?为什么它不能将元组作为参数,而只是返回一个Int(或任何其他不是a的类型)?我不明白为什么它必须返回类型 a?
谢谢
【问题讨论】:
标签: haskell