首先,我正在读的 真实世界 Haskell说永远不要使用 foldl
而是使用 foldl'
,所以我相信它。
但是我不清楚什么时候使用 foldr
和 foldl'
。虽然我可以看到它们如何以不同的方式摆在我面前,但是我太笨了,无法理解什么时候“哪个更好”我想在我看来,用哪个答案并不重要,因为它们都会得出相同的答案(不是吗?).事实上,我以前使用这个构造的经验来自 Ruby 的 inject
和 Clojure 的 reduce
,它们似乎没有“左”和“右”版本。(附带问题: 他们使用哪个版本?)
任何能够帮助像我这样缺乏智慧的人的见解都是非常感激的!