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

  

相关文章
|
6月前
|
Serverless 数据处理 Python
Python函数式编程:理解与实践
Python函数式编程是一种高阶编程范式,它强调函数的纯洁性和不可变性,使得代码更易于理解、维护和扩展。本文将深入探讨Python函数式编程的概念和应用,介绍函数式编程的基本特性、常用函数和实际应用场景,并通过具体案例演示如何使用Python实现函数式编程。
154 6
|
6月前
|
算法 Linux C++
【C++入门到精通】C++入门 —— 深浅拷贝函数
是C++中的一个特殊成员函数,用于创建对象的副本。它的作用是通过使用已有对象的属性值来初始化新对象,实现对象的复制操作。通过定义拷贝构造函数,我们可以控制对象的拷贝过程,并确保正确处理含有指针或动态分配内存的类。
62 0
|
JavaScript 前端开发 Java
函数式编程入门:理解纯函数、高阶函数与柯里化
函数式编程入门:理解纯函数、高阶函数与柯里化
169 0
|
前端开发
前端学习案例1-偏函数1
前端学习案例1-偏函数1
46 0
前端学习案例1-偏函数1
|
前端开发
前端学习案例1-柯里化的实现
前端学习案例1-柯里化的实现
56 0
前端学习案例1-柯里化的实现
|
前端开发
前端学习案例2-偏函数2
前端学习案例2-偏函数2
32 0
前端学习案例2-偏函数2
|
前端开发
前端学习案例1-高阶函数2
前端学习案例1-高阶函数2
42 0
前端学习案例1-高阶函数2
|
前端开发
前端学习案例3-偏函数3
前端学习案例3-偏函数3
52 0
前端学习案例3-偏函数3
|
Web App开发 缓存 前端开发
✨从柯里化讲起,一网打尽 JavaScript 重要的高阶函数
✨从柯里化讲起,一网打尽 JavaScript 重要的高阶函数
|
JavaScript 前端开发 网络架构
朋友,柯里化(Currying)了解一哈
greet获取了它应获取的参数,curry也停止了递归处理。并且,我们也获得了想要的结果Hello,范北宸。 其实利用curry对greet经过如上处理之后,现在处理之后的函数能够同时接收任意(n≥0)的参数。
125 0