小编use*_*525的帖子

具有foldr和foldl的高阶函数细节

我在解释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)

非常感谢.

haskell combinators fold

5
推荐指数
1
解决办法
280
查看次数

标签 统计

combinators ×1

fold ×1

haskell ×1