扫一扫分享
目前已经存在许多优秀的函数式的库。通常它们作为通用工具包,可以用于多种编程范式。Ramda 的目标更为专注:专门为函数式编程风格而设计,更容易创建函数式 pipeline、且从不改变用户已有数据。
Ramda 主要特性如下:
Ramda 强调更加纯粹的函数式风格。数据不变性和函数无副作用是其核心设计理念。这可以帮助你使用简洁、优雅的代码来完成工作。
Ramda 函数本身都是自动柯里化的。这可以让你在只提供部分参数的情况下,轻松地在已有函数的基础上创建新函数。
Ramda 函数参数的排列顺序更便于柯里化。要操作的数据通常在最后面。
使用 Ramda 时,应该感觉像使用原生 JavaScript 一样,它是实用且函数式的 JavaScript。Ramda 没有在字符串中引入 lambda 表达式,也没有借用 consed 列表,更不是要移植所有的 Clojure 函数。
Ramda 基本的数据结构都是原生 JavaScript 对象,我们常用的集合是 JavaScript 的数组。Ramda 还保留了许多其他原生 JavaScript 特性,例如,函数是具有属性的对象。
函数式编程优势主要体现在数据不变性和函数无副作用两方面。虽然 Ramda 没有对此特别加强,但它在这两方面支持的非常好。
我们尽量让实现(编程和 api 实现)简洁、优雅。但 API 为王。为此我们牺牲了大量优雅、简洁的实现。
最后,Ramda 非常注重运行性能。可靠和快速的实现胜过过于强调函数式的纯度。
使用 node:
$ npm install ramda
然后在 console 中使用:
const R = require('ramda');
直接在浏览器中使用:
<script src="path/to/yourCopyOf/ramda.js"></script>
或使用最小化版本:
<script src="path/to/yourCopyOf/ramda.min.js"></script>
或从 CDN 上获取:
<script src="//cdnjs.cloudflare.com/ajax/libs/ramda/0.26.0/ramda.min.js"></script>
手机预览