在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。

就像下面的例子一样,curry函数可以产生一个需要参数更少的函数,从而简化调用

let curry = (fn,...args)=>(...rest)=> fn.apply(null,args.concat(rest)) ;
let Log = (file,level,msg)=> console.log(${level} ${new Date().toLocaleString()}: at ${file},${msg});
let ThisFileLog = curry(Log,"1.js");
let INFO = curry(ThisFileLog,"INFO") ;
let WARN = curry(ThisFileLog,"WARN") ;
INFOServer Startup!
WARNDISK 1-1-1 access wrong

 

分类: 编程