答案 0 :(得分:3)
简短答案:箭头类型构造函数(->)
是右关联运算符。
箭头是右联想。这意味着如果您写:
map :: (d -> e) -> [d] -> [e]
更详细,您写道:
map :: (d -> e) -> ([d] -> [e])
因此,假设(.)
的第一个参数具有类型(a -> b)
,则这意味着类型(d -> e) -> ([d] -> [e]) ~ a -> b
(~
表示相同类型),因此{{1 }}和a ~ d -> e
。当然,当我们用第二个b ~ [d] -> [e]
键入check时,同样如此。
请牢记这一点,就像节点所说的那样,得出:
map
因此,这意味着此函数采用类型(.) map map :: (f -> g) -> ([[f]] -> [[g]])
的函数,并将列表列表中的所有元素映射到维护该结构的列表列表。
例如:
f -> g