以下Gentle Intro to Haskell的摘录暗示头部的类型可以看作a-> a。是我不理解某事或者这是一个错字吗?
可能只是我,但是头部的类型怎么可能是a-> a?
表达式或函数的主体类型是最不通用的类型 直觉上,“包含表达式的所有实例”。对于 例如,头部的主要类型是[a] - > a; [b] - > a,a-> a,或甚至a 是正确的类型,但太笼统,而类似的东西 [整数] - >整数太具体了。
答案 0 :(得分:9)
这是一个错字,我相信他们的意思
head :: b -> a
因为b
只是一个与[a]
统一的随机类型变量。
因此,为了提高特异性,
head :: [a] -> a
head :: foo -> a
head :: a