0 haskell function-composition
如何在下面的表达式中理解函数组合?
map . foldr (.) id :: [b -> b] -> [b] -> [b]
Run Code Online (Sandbox Code Playgroud)
f :: [a->a] -> a -> a
f = foldr (.) id
Run Code Online (Sandbox Code Playgroud)
这将获取函数列表并将它们组合在一起
例如
foldr (.) id [(+1),(+2)] == ((+1) . ((+2) . id)) == (+3)
Run Code Online (Sandbox Code Playgroud)
功能应用程序具有最高的固定性,并且最后制作地图
map . foldr (.) id == \x -> map ( foldr (.) id x )
Run Code Online (Sandbox Code Playgroud)
foldr (.) id在应用第一个参数(函数列表)之后,它映射到列表(第二个参数)