本来想跟lodash一样,只安装min版本的库,但是ramda的min版本是一个超级长的长字串,以至于vscode解析起来都有些吃力,更不要说wps的编辑器,导入就是崩溃。因此,改为导入完全的版本。
以下为ramda的介绍:
目前已经存在许多优秀的函数式的库。通常它们作为通用工具包,可以用于多种编程范式。Ramda 的目标更为专注:专门为函数式编程风格而设计,更容易创建函数式 pipeline、且从不改变用户已有数据。
Ramda 主要特性如下:
Ramda 强调更加纯粹的函数式风格。数据不变性和函数无副作用是其核心设计理念。这可以帮助你使用简洁、优雅的代码来完成工作。
Ramda 函数本身都是自动柯里化的。这可以让你在只提供部分参数的情况下,轻松地在已有函数的基础上创建新函数。
Ramda 函数参数的排列顺序更便于柯里化。要操作的数据通常在最后面。
最后两点一起,使得将多个函数构建为简单的函数序列变得非常容易,每个函数对数据进行变换并将结果传递给下一个函数。Ramda 的设计能很好地支持这种风格的编程。
使用 Ramda 时,应该感觉像使用原生 JavaScript 一样,它是实用且函数式的 JavaScript。Ramda 没有在字符串中引入 lambda 表达式,也没有借用 consed 列表,更不是要移植所有的 Clojure 函数。 Ramda 基本的数据结构都是原生 JavaScript 对象,我们常用的集合是 JavaScript 的数组。Ramda 还保留了许多其他原生 JavaScript 特性,例如,函数是具有属性的对象。 函数式编程优势主要体现在数据不变性和函数无副作用两方面。虽然 Ramda 没有对此特别加强,但它在这两方面支持的非常好。 我们尽量让实现(编程和 API 实现)简洁、优雅。但 API 为王。为此我们牺牲了大量优雅、简洁的实现。 最后,Ramda 非常注重运行性能。可靠和快速的实现胜过过于强调函数式的纯度。
|