【发布时间】:2013-06-03 00:38:11
【问题描述】:
我能够完美地执行以下代码
myLast :: [a] -> a
myLast [] = error "Can't call myLast on an empty list!"
myLast (x:_) = x
但我收到以下代码的错误Couldn't match expected type `a' with actual type `[a]'. `a' is a rigid type variable bound by the type signature for myLast :: [a] -> a:
myLast :: [a] -> a
myLast [] = error "Can't call myLast on an empty list!"
myLast (_:x) = x
我是 Haskell 的初学者,错误信息对我来说太希腊化和拉丁化了。据我了解,编译器无法推断第二种情况的类型。有人可以指出这里实际发生的事情吗?
【问题讨论】:
标签: haskell