函数式编程思想

什么是函数式编程

  • 函数与其他数据类型一样,处于平等地位,可以赋值给其他变量,也可以作为参数,传入另一个函数,或者作为别的函数的返回值。
  • 每一步都是表达式,都应该有返回值,而且尽可能避免读写
  • 目的仅仅是返回结果,并不会修改任何变量
  • 提供同样输入的情况下,返回值亦相同,易于优化

高阶函数

函数可以作为参数传递的,甚至可以作为返回值,这便是高阶函数

var greet = function(x) { return `Hello, ${ x }` };
var emote = function(x) { return `${x} :)` };

var compose = function(f, g) {
      return function(x) {
        return f(g(x));
      }
}
var happyGreeting = compose(greet, emote);
// happyGreeting(“Mark”) -> Hello, Mark :)

柯里化

柯里化是一种使用匿名单参数函数来实现多参数函数的方法
pipeline(管道)处理数据流,也就是依次传入参数并返回值
Currying 的重要意义在于可以把函数完全变成「接受一个参数;返回一个值」的固定形式,这样对于讨论和优化会更加方便。

var curriedAdd = function(a) {
    return function(b) {
        return a + b;
    };
};

var addTen = curriedAdd(10);
addTen(10); //20

未完待续

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容