【发布时间】:2016-05-01 14:50:52
【问题描述】:
所以我在 Haskell 中发现了 foldr 函数,根据我的经验,您可以使用它来计算列表的乘积和总和:
foldr f x xs
foldr (*) 1 [1..5] = 120
foldr (+) 0 [1..5] = 15
将数字添加到 x 部分会添加到总和或乘以最终乘积
foldr 实际上做了什么,为什么有人会使用它而不是内置函数“sum”或“product”等?
【问题讨论】:
-
foldris 在很多方面 the 函数围绕 lists - 为什么你会使用它而不是sum和product?好吧,因为你可以用它来定义那些函数(但你是对的——你不会——你会用那些来提高可读性) -
除此之外还有很多个这样的问题——例如:stackoverflow.com/questions/1757740/how-foldr-works(可能重复)
-
无论如何你都不会使用
foldr进行求和,你会使用foldl'。
标签: haskell functional-programming