219得票8回答
Scala中foldLeft和reduceLeft的区别

我已经学习了foldLeft和reduceLeft之间的基本区别: foldLeft: 需要传递初始值 reduceLeft: 将集合的第一个元素作为初始值 如果集合为空,则会抛出异常 还有其他区别吗? 为什么要使用两个具有类似功能的方法?

205得票7回答
Kotlin中fold和reduce的区别,何时使用哪个?

我对Kotlin中的fold()和reduce()这两个函数感到非常困惑,有没有人能够给我一个具体的例子来区分它们?

202得票3回答
缩减、折叠还是扫描(左/右)?

何时应该使用reduceLeft、reduceRight、foldLeft、foldRight、scanLeft或scanRight? 我想要一个它们之间差异的直觉/概述-可能包括一些简单的例子。

176得票8回答
“pythonic”中的“fold”函数等效于函数式编程中的哪个函数?

在 Haskell 中,实现类似以下代码的最惯用方式是什么:foldl (+) 0 [1,2,3,4,5] --> 15 或者在Ruby中等价于:[1,2,3,4,5].inject(0) {|m,x| m + x} #> 15 显然,Python提供了reduce函数,就像上面的...

171得票7回答
foldr和foldl(或foldl')的含义及影响。

首先,我正在阅读的《Real World Haskell》指出永远不要使用foldl,而是使用foldl',因此我相信它。 但是我对何时使用foldr和foldl'感到模糊。虽然我可以看到它们的不同工作结构,但我太蠢了,不理解哪个“更好”。我想对我来说似乎并不重要使用哪个,因为它们都会产生相...

142得票5回答
折叠和归约的区别是什么?

尝试学习 F# 时,当试图区分 fold 和 reduce 时感到困惑。 Fold 似乎做了相同的事情,但需要一个额外的参数。这两个函数存在的合法原因是什么?还是为了适应具有不同背景的人们?(例如:在C#中的 String 和 string) 以下是从示例中复制的代码片段:let sumAL...

134得票4回答
foldl和foldr在处理无限列表时的行为差异

这个问题中的myAny函数使用了foldr。当谓词满足时,它停止处理无限列表。 我用foldl重写了它: myAny :: (a -> Bool) -> [a] -> Bool myAny p list = foldl step False list where ...

110得票4回答
你如何知道何时使用fold-left和何时使用fold-right?

我知道fold-left会生成左倾树,而fold-right会生成右倾树,但是当我需要使用fold时,有时会陷入令人头痛的思考中,试图确定哪种类型的fold是合适的。通常情况下,我会将整个问题解开,并逐步通过fold函数的实现来解决我的问题。 因此,我想知道: - 有哪些经验法则可以确定何...

98得票4回答
函数式编程中reduce和foldLeft/fold的区别是什么(尤其是在Scala和Scala API中)?

Scala和Spark、Scalding等框架为什么同时拥有reduce和foldLeft方法?那么reduce和fold有什么区别呢?

92得票11回答
foldr是如何工作的?

有人能解释一下 foldr 怎么工作的吗? 以这些例子为例:Prelude> foldr (-) 54 [10, 11] 53 Prelude> foldr (\x y -> (x+y)/2) 54 [12, 4, 10, 6] 12.0 我对这些执行过程感到困惑。有什么建议吗?