疫情严重,不能出门,但是可以在家里学习,learn learn ,day day up
阮一峰:学习函数式编程的过程中,我接触到了 Ramda.js。我发现,这是一个很重要的库,提供了许多有用的方法,每个 JavaScript 程序员都应该掌握这个工具
你可能会问,Underscore 和 Lodash 已经这么流行了,为什么还要学习好像雷同的 Ramda 呢?
回答是,前两者的参数位置不对,把处理的数据放到了第一个参数。
var square = n => n * n; _.map([4, 8], square) // [16, 64]
上面代码中,_.map的第一个参数[4, 8]是要处理的数据,第二个参数square是数据要执行的运算。
Ramda 的数据一律放在最后一个参数,理念是”function first,data last“。
var R = require(‘ramda’); R.map(square, [4, 8]) // [16, 64]
为什么 Underscore 和 Lodash 是错的,而 Ramda 是对的?这放在下一篇文章详细解释,今天我主要介绍 Ramda 提供的几十个方法。这是理解以后的内容所必须的。
除了数据放在最后一个参数,Ramda 还有一个特点:所有方法都支持柯里化。