【发布时间】:2016-04-08 16:16:19
【问题描述】:
在 Haskell 中,我不明白为什么部分应用程序 foldr id 会进行类型检查。
相关类型是
> :t foldr id
foldr id :: a -> [a -> a] -> a
> :t foldr
foldr :: (a -> b -> b) -> b -> [a] -> b
> :t id
id :: a -> a
foldr 的第一个参数是(a->b->b)。相反,id 的类型是a->a。它们不应该兼容。
【问题讨论】:
-
:t id :: (a -> a) -> (a -> a)可能很有启发性。 -
@ChadGilbert 感谢您的编辑。仅供参考,您可以只写一次
<!-- language-all: haskell -->。
标签: haskell types type-inference fold partial-application