如何在下面的表达式中理解函数组成?
map . foldr (.) id :: [b -> b] -> [b] -> [b]
答案 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
映射到列表(第二个参数)