之前看过 Clojure 作者的演讲:
http://www.tudou.com/programs/view/5y_hDVID7gQ/
http://www.tudou.com/programs/view/PqdnO8uU6UU/
现在又看了一个 JavaScript 的教程:
http://phuu.net/2014/08/31/csp-and-transducers.html
大意 Transducer 是从 reduce 抽象出来的跟数据结构无关的序列操作的新办法(?), 而且还能作为函数任意复合(?), 不知道是不是这个意思...
有没有同学熟悉这方面, 而且能用生动的例子讲解一下原理, 特别还有怎么用的?
说多了都是痛, 一个例子就够了
首先是简单的概念
reduce 接收一个reducing函数 和一个collection返回值, 比如
+
是reducing函数transducer 接收一个reducing函数, 返回一个新的reducing函数,
(map inc)
返回transducer, 而不是柯里化所以这俩组合就变成
如果没有transducer是这样的
想看稍微长一点的解释可以看看 我这篇文章, 虽然写给js dev的, 应该更好理解才是.