//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)