柯里化函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了柯里化函数相关的知识,希望对你有一定的参考价值。

记得曾经被柯里化函数折磨的不轻,今天没事来重新研究研究。

 先来看看柯里化函数的定义:

 柯里化(Currying)指的是将原来接受两个参数的函数变成新的接受一个参数的函数的过程。新的函数返回一个以原有第二个参数为参数的函数。

 光看定义是不是一脸蒙蔽,其实我也是这样的,举个例子就明白了,先定义一个有两个参数的简单函数
     function sum(a,b)
         return a+b;
     ;
 我们来把它柯里化:
     function sum(a)
         return function another(b)
             return a+b;
         
     
 那怎么调用呢?

 sum(1)(2);
//3

这有点像闭包呀看到没,其实就是闭包,a 也就成了哪个系统不被回收的变量,这样就可以让another函数随时访问,a适用放一些全局的配置信息。这样就不用每次执行的时候都传入了。

以上是关于柯里化函数的主要内容,如果未能解决你的问题,请参考以下文章

js之柯里化与反柯里化

手写柯里化,实现柯里化

面试官:什么是函数柯里化?能手写实现吗?

Swift 柯里化

函数式编程之一柯里化

柯里化函数