令人费解的功能构成

时间:2016-03-24 12:35:58

标签: haskell function-composition

如何在下面的表达式中理解函数组成?

map . foldr (.) id :: [b -> b] -> [b] -> [b]

1 个答案:

答案 0 :(得分:9)

f :: [a->a] -> a -> a
f = foldr (.) id

这将获取功能列表并将它们组合在一起

例如

foldr (.) id [(+1),(+2)] == ((+1) . ((+2) . id)) == (+3)

功能应用程序具有最高的固定性,并且最后制作地图

map . foldr (.) id == \x -> map ( foldr (.) id x )

在应用第一个参数(函数列表)后,将foldr (.) id映射到列表(第二个参数)