Javasccript学习进阶——科里化(Currying)

简介: //这是一个计算x+y的函数,但是它和常规函数的不同之处在于 //它是被Currying的 function add(x, y) { //当x,y都有值得时候,计算并返回x+y的值 if(x!=null && y!=null) return x + y; ...
//这是一个计算x+y的函数,但是它和常规函数的不同之处在于 
//它是被Currying的 
function add(x, y) 
{  
    //当x,y都有值得时候,计算并返回x+y的值  
    if(x!=null && y!=null) return x + y;  
    //否则,若x有值y没有值 
    else if(x!=null && y==null) return function(y) 
    {  
        //返回一个等待y参数进行后续计算的闭包  
        return x + y; 
    } 
    //若x没有值y有值 
    else if(x==null && y!=null) return function(x) 
    {  
        //返回一个等待x参数进行后续计算的闭包     
        return x + y; 
    } 
} 
//计算add(3,4)的值,得到3+4的结果7 
var a = add(3, 4); 
//计算add(2)的值,得到一个相当于求2+y的函数 
var b = add(2); 
//继续传入y的值10,得到2+10的结果12 
var c = b(10); 

  

相关文章
|
3月前
|
Serverless 数据处理 Python
Python函数式编程:理解与实践
Python函数式编程是一种高阶编程范式,它强调函数的纯洁性和不可变性,使得代码更易于理解、维护和扩展。本文将深入探讨Python函数式编程的概念和应用,介绍函数式编程的基本特性、常用函数和实际应用场景,并通过具体案例演示如何使用Python实现函数式编程。
66 6
|
6月前
|
JavaScript 前端开发 Java
函数式编程入门:理解纯函数、高阶函数与柯里化
函数式编程入门:理解纯函数、高阶函数与柯里化
61 0
|
12月前
|
JavaScript 前端开发 网络架构
朋友,柯里化(Currying)了解一哈
greet获取了它应获取的参数,curry也停止了递归处理。并且,我们也获得了想要的结果Hello,范北宸。 其实利用curry对greet经过如上处理之后,现在处理之后的函数能够同时接收任意(n≥0)的参数。
|
12月前
|
Web App开发 缓存 前端开发
✨从柯里化讲起,一网打尽 JavaScript 重要的高阶函数
✨从柯里化讲起,一网打尽 JavaScript 重要的高阶函数
|
前端开发
前端学习案例1-柯里化的实现
前端学习案例1-柯里化的实现
40 0
前端学习案例1-柯里化的实现
|
前端开发
前端学习案例1-偏函数1
前端学习案例1-偏函数1
31 0
前端学习案例1-偏函数1
|
前端开发
前端学习案例2-偏函数2
前端学习案例2-偏函数2
23 0
前端学习案例2-偏函数2
|
前端开发
前端学习案例1-高阶函数2
前端学习案例1-高阶函数2
33 0
前端学习案例1-高阶函数2
|
前端开发
前端学习案例3-偏函数3
前端学习案例3-偏函数3
37 0
前端学习案例3-偏函数3
函数进阶
函数根据 **有没有参数** 以及 **有没有返回值**,可以 **相互组合**,一共有 **4 种** 组合形式 1. 无参数,无返回值 2. 无参数,有返回值 3. 有参数,无返回值 4. 有参数,有返回值