在她的演讲中,Clojure Bodil 的未来提出了以下主张:
Guy Steele 在 ICFP 上做了一个演讲,名为为并行执行组织功能代码(或 foldl 和 foldr 被认为有轻微危害)(也在ACM 中)。
Guy Steele 在幻灯片 70 中断言:
只要你说“第一
SUM = 0”,你就被灌输了。累加器不利于并行性。请注意foldl和foldr,虽然是功能性的,但从根本上来说是累积性的。
这很有趣。所以 Bodil 说 Guy Steele 是在说一个问题。然后她声称 Rich 用Reducers(和Transducers是这种思路的延续)解决了这个问题。在16:11的 Transducers 演讲中,我们看到 Rich 提到了一些关于foldr.
- Bird -构造函数式编程讲座(1988 年)
- Hutton -关于 fold 的普遍性和表现力的教程(1999 年)
Rich 有效地表示folds 是可组合的——您可以使用它们来构建其他高阶函数,例如map和filter。
我的问题是 - Bodil 是对的吗?Rich 解决了 Guy Steele 提出的问题了吗?减速器(在 Clojure 中)是否解决了 Guy Steele 概述的缩放折叠累积问题?
