下面从Gentle Intro到Haskell的摘录暗示头部类型可以看作a-> a.是我不理解某事或这是一个错字?
可能它只是我,但那么头部的类型怎么样a-> a?
表达式或函数的主体类型是最不通用的类型,直观地说,"包含表达式的所有实例".例如,头部的主要类型是[a] - > a; [b] - > a,a-> a,或者甚至是一个正确的类型,但是太笼统,而像[Integer] - > Integer这样的东西太具体了.
这是一个错字,我相信他们的意思
head :: b -> a
Run Code Online (Sandbox Code Playgroud)
因为b它只是一个可以统一的随机类型变量[a].
所以为了增加特异性,
head :: [a] -> a
head :: foo -> a
head :: a
Run Code Online (Sandbox Code Playgroud)