Fork me on GitHub

ramda运用概述

继续函数式编程的学习。

它提供了一系列以函数式、声明式和数据不变性方式工作的函数。
在这个系列中,我们了解了蕴含在 Ramda API 背后的一些指导原则:

  1. 数据最后:几乎所有的函数都将数据参数作为最后一个参数。
  2. 柯里化:Ramda 几乎所有的函数都是自动柯里化的。也即,可以使用函数必需参数的子集来调用函数,这会返回一个接受剩余参数的新函数。当所有参数都传入后,原始函数才被调用。

章节总结

入门:介绍了函数、纯函数和数据不变性思想。作为入门,展示了一些集合迭代函数,如:map、filter 和 reduce 等。
函数组合:演示了可以使用工具(如 both、either、pipe 和 compose)以多种方式组合函数。
部分应用(Partial Application):演示了一种非常有用的函数延时调用方式:可以先向函数传入部分参数,以后根据需要将其余参数传入。借助 partial 和 curry 可以实现部分应用。我们还学习了 flip 和占位符(__)。
声明式编程:介绍了命令式和函数式编程之间的区别。学习了如何使用 Ramda 的声明式函数代替算术、比较、逻辑和条件运算符。
无参数风格编程(Pointfree Style):介绍了 pointfree 风格的思想,也被称为 “tatic” 式编程。在 pointfree 式编程时,实际上不会看到正在操作的数据参数,数据被隐含在函数中了。程序是由许多较小的、简单的构建模块组合而成。只有在最后才将组合后的函数应用于实际的数据上。
数据不变性和对象:该节让我们回到了声明式编程的思想,展示了读取、更新、删除和转换对象属性所需的工具。
数据不变性和数组:继续上一节的主题,展示了数据不变性在数组中的应用。
透镜(Lenses):引入了透镜的概念,该结构允许我们把重点聚焦在较大的数据结构的一小部分上。借助 view、set 和 over 函数,可以对较大数据结构的小部分被关注数据进行读取、更新和变换操作。

参考文献:
JavaScript函数编程-Ramdajs
Thinking in Ramda系列文章

-------------本文结束感谢您的阅读,如果本文对你有帮助就记得给个star-------------
Donate comment here