在数学和计算机科学中,柯里化是一种将使用多个参数的一个函数转换成一系列使用一个参数的函数的技术。

  举例来说,一个接收3个参数的普通函数,在进行柯里化后,柯里化版本的函数接收一个参数并返回接收下一个参数的函数,该函数返回一个接收第三个参数的函数。最后一个函数在接收第三个参数后,

  将之前接收到的三个参数应用于原普通函数中,并返回最终结果。

  来看这个例子:

//普通函数
function fn(a,b,c,d,e) {
console.log(a,b,c,d,e)
}
//生成的柯里化函数
let _fn = curry(fn); _fn(1,2,3,4,5); // print: 1,2,3,4,5
_fn(1)(2)(3,4,5); // print: 1,2,3,4,5
_fn(1,2)(3,4)(5); // print: 1,2,3,4,5
_fn(1)(2)(3)(4)(5); // print: 1,2,3,4,5

  对于已经柯里化后的_fn函数来说,当接收的参数数量与原函数的形参数量相同时,执行原函数;

  当接收的参数数量小于原函数的形参数量时,返回一个函数用于接收剩余的参数,直至接收的参数数量与形参数量一致,执行原函数。

最新文章

  1. C#的委托
  2. 高德地图JavaScript开发
  3. Mysql常见四种索引的使用
  4. winkawaks模拟器
  5. WPS2013三合一全套精品视频教程-【word,excel,powerpoint】
  6. hdu2807 矩阵乘法+floyd
  7. MySQL DBA的个人修养
  8. Ubuntu LAMP搭建
  9. HDU1106
  10. SqlBulkCopy使用介绍以及注意事项
  11. BZOJ3881 Divljak
  12. [原][openstack-pike][controller node][issue-3][horizon] dashboard show internal error 500 Cannot serve directory /var/www/html
  13. awk 进阶,百万行文件取交集
  14. textarea 标签 属性
  15. Matlab 中以分数显示结果
  16. vue里面computed的运用理解
  17. bootstrap栅格系统错位问题
  18. 没有main函数的helloworld
  19. IEnumerable<T> 接口和GetEnumerator 详解
  20. 深入理解磁盘文件系统之inode(转)

热门文章

  1. WebApi EF Core 2.1 Code First 设置导航属性,外键
  2. kotlin channel使用注意点
  3. 原生js实现折线图
  4. css浮动效果造成父元素高度为0,解决
  5. 2345 ip
  6. javaScript 获取对象数组的对象里面想要的属性,返回一个新的数组
  7. window server 2012R2部署asp.net core项目应用程序池自动停止
  8. 完全使用vscode开发python
  9. Oracle 用户创建,权限授予
  10. CCF 202009-2 风险人群筛查