函数式编程
一等公民
举例:
1 | // 太傻了 |
1 | // 可笑的代码 |
纯函数
纯函数 没有副作用,只要输入不变 输出就不会变
纯函数的理由
#####可缓存性
1 | var squareNumber = memoize(function(x){ return x*x; }); |
柯里化
curry 的概念很简单:只传递给函数一部分参数来调用它,让它返回一个函数去处理剩下的参数。
「我父亲以前跟我说过,有些事物在你得到之前是无足轻重的,得到之后就不可或缺了。微波炉是这样,智能手机是这样,互联网也是这样——老人们在没有互联网的时候过得也很充实。对我来说,函数的柯里化(curry)也是这样。」
1 | var curry = require('lodash').curry; |
组合
1 | var compose = function(f,g) { |
组合让代码从右向左运行,而不是由内而外运行。
声明式
1 | // 命令式 |