
函数式编程
夜已如歌_ok
这个作者很懒,什么都没留下…
展开
-
js函数式编程之pointfree
什么是pointfree pointfree是指函数无须提及将要操作的数据是什么样的。 一等公民的函数、柯里化(curry)以及函数组合(compose)协作起来非常有助于实现这种模式。 compose实现: function compose(){ var args=arguments; var start=args.length - 1; return function(){ var i = start; var result=arg...原创 2020-11-15 20:55:03 · 729 阅读 · 0 评论 -
js函数式编程之偏应用函数 (Partial Application)
偏应用函数是通过预先填充原始函数的部分(不是全部)参数来创建一个新函数 我们直接使用bind函数: function add(a, b, c) { return a+b+c; } add(1, 2, 3); // 6 var add1 = add.bind(this, 1, 2); add1(3); // 6 但是bind函数会改变this指向 我们来实现偏函数(从左往右应用参数): function partial(fn) { var args = []原创 2020-11-05 22:24:35 · 596 阅读 · 0 评论 -
js函数式编程之柯里化(curry)
curry概念: 只传递给函数一部分参数来调用它,让它返回一个函数去处理剩下的参数。 你可以一次性地调用curry函数,也可以每次只传一个参数分多次调用。 var add = function(x) { return function(y) { return x + y; }; }; var increment = add(1); var addTen = add(10);...原创 2019-05-06 22:38:24 · 779 阅读 · 0 评论 -
js函数式编程之代码组合(compose)
var compose = function(f,g) { return function(x) { return f(g(x)); }; }; 这就是函数组合(compose),f 和 g 都是函数, x是在它们至今通过“管道”传输的值。 用法1: var toUpperCase = function(x) { return x.toUpperCase(); }; va...原创 2019-05-09 22:38:09 · 2606 阅读 · 0 评论