我在解释foldl的函数签名时遇到了麻烦.我理解它是如何工作的,但我不确定它与签名的关系.
我对它的细节有几个疑问
foldr :: (a -> b -> b) -> b -> [a] -> b
foldr (+) 5 [1,2,3,4]
Run Code Online (Sandbox Code Playgroud)
看起来第一个参数需要一个加法函数:
(a -> b -> b)
Run Code Online (Sandbox Code Playgroud)
在函数参数中,到底发生了什么?在这种情况下,此部分是否将最右侧的整数a应用于累加器b以产生另一个整数9?在此之后,它是否会返回一个以累加器作为参数的函数?
接下来,下面的最后两个参数是什么意思?
[a] -> b
Run Code Online (Sandbox Code Playgroud)
非常感谢.