转换器:JavaScript 中的高效数据处理管道 @ Eric Elliott -Medium
理解 JavaScript 中的转换器 @ Roman Liutikov-Medium
很难理解一半...
什么是换能器?
更简单的 JavaScript 转换器
如何使用转换器提高数据转换效率
Rich Hickey-cognitect 推出传感器
Transducers-Clojure.org
我阅读了大约 2 页的 Clojure 官方教程,并了解了基本语法。我参考了内置函数参考来理解转换器示例代码。
我对以上两篇文章的理解大概是75%...
我想知道以下理解/js代码是否正确。请帮帮我。<(_ _)>
by 的返回值compose()
是一个转换器。
Transducer 通过transduce()
作为参数传递给函数来执行,此外, (2)Transducer 通过将数组直接传递给 来执行transducer()
。
在(2)的过程中,不产生中间值,并执行如下链接的有效过程。
我的代码
"use strict";
const map = fn => arr => arr.map(fn),
filter = fn => arr => arr.filter(fn),
addReducer = arr => arr.reduce((acc, num) => acc + num, 0),
add1 = n => n + 1,
even = n => n % 2 === 0,
compose = (...fns) => initVal => fns.reduce((acc, fn) => fn(acc), initVal),
transduce = (xform, reducer, arr ) => reducer( xform(arr) );
const arr = [1,2,3],
transducer = compose( /* called transducer or xform */
map( add1 ), // 2,3,4
filter( even ), // 2,4
);
console.log( transducer(arr) ) // 2,4
console.log( transduce(transducer, addReducer, arr) ) // 6
慕标琳琳
江户川乱折腾
相关分类