函数式编程里面的基本工具函数实现

请注意,本文编写于 191 天前,最后修改于 191 天前,其中某些信息可能已经过时。

compose 实现

function compose(...args) {
  return (result) => {
    return args.reduceRight((result, fn) => {
      return fn(result)
    }, result)
  }
}

pipe 实现

function compose(...args) {
  return (result) => {
    return args.reduce((result, fn) => {
      return fn(result)
    }, result)
  }
}

柯里化实现

function currying(fn, ...args) {
    if (args.length >= fn.length) {
        return fn(...args)
    }
    return function (...args2) {
        return currying(fn, ...args, ...args2)
    }
}

部分应用实现

function partial(fn, ...args) {
    return (..._arg) => {
        return fn(...args, ..._arg);
    }
}
Comments

添加新评论