ramda
介绍
特点
- 自动柯里化(lodash/fp同级)
- 更多的流操作(pipe/compose/chain/on/juxt/ap/coverage/promap),查看js-ramda-流相关函数(lodash/fp+futil.js同级)
- 包体积更小
相关文章阅读
- 阮一峰ramda和函数式编程:函数式编程里面可以看下概念,但代码部分有误,可以看勘正的函数式编程指北
- 函数式编程指北,这本书是目前对函数式编程概念理解比较好的书籍.
- pdf文物-JavaScript函数式编程.pdf,这本书和ramda里面的api比较吻合,看完后可以加深对ramda的理解.
- 阅读ramda官网文章,阅读一些知乎相关文章
- 另外,需要复习下简单的一些数学知识
使用技巧
- 关于异步流,ramda里面有otherWise和andThen两个api来提供流的传递.其他部分可以参考函数式编程指北的第9章节和第10章节.
- 注意阅读的重要性,方便阅读才是目的.不要强制使用api去构建复杂的函数,这样功能虽然能够实现,但同时失去了最重要的代码阅读性.函数式编程的一个重要概念是方便熟悉api的开发者能够通过阅读api就可以理解该逻辑实现的相关功能.
- 注意数据流的传递,多使用curry来调整参数的位置,提供中间函数.
- 使用过程中,时刻注意将函数拆解简单化,纯化
- 多总结ramda中和流走向相关的函数应用
- 需要手动建立来补充lodash里面独具的Api
和lodash比较
- ramda的api并没有完全覆盖lodash的api. so,使用lodash库需要自己实现一些ramda里面已有的api,然而使用ramda库也是需要使用里面的部分api去构建lodash里面的api.但大部分api ramda都已经具备,且ramda的部分更为强大,包更小.
- lodash有lodash/fp库,该库特点
- 自动柯里化
- 迭代优先数据置后
- immutable(入参不可改)
- 函数名基本同ramda,有大部分相同Api,也有个别不同的api
- 无文档,直接看库