编辑代码

//JSRUN引擎2.0,支持多达30种语言在线运行,全仿真在线交互输入输出。 
function curry(fun) {
    return function curryFun(...args) {
        if(args.length < fun.length) {
            return function() {
                return curryFun(...args.concat(Array.from(arguments)))
            }
        }
        return fun(...args)
    }
}

function compose (...fns) {
    return function(value) {
        return fns.reduce(function(acc, fn) {
            return fn(acc)
        }, value)
    }
}

function add(a, b, c) {
    return a + b + c
}

function print(x) {
    console.log(x)
}

var add1 = curry(add)(1)
console.log(add1(2,3))
console.log(add1(2)(3))

compose(add, print)(1,2,3)