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月前
|
算法 编译器 C++
【C++篇】领略模板编程的进阶之美:参数巧思与编译的智慧
【C++篇】领略模板编程的进阶之美:参数巧思与编译的智慧
99 2
|
8月前
|
Python
Python函数式编程思想与面试实战
【4月更文挑战第14天】Python函数式编程涉及纯函数、高阶函数、匿名函数等概念,能提高代码可读性和并发性。本文探讨其核心理念,分析面试常见问题,如纯函数副作用、高阶函数使用、lambda过度使用等,并提供应对策略。理解并熟练应用函数式编程,对于面试表现和技术提升至关重要。
54 0
|
C语言 C++
C++入门学习(3)函数重载
C++入门学习(3)函数重载
|
前端开发
前端学习案例1-偏函数1
前端学习案例1-偏函数1
60 0
前端学习案例1-偏函数1
|
前端开发
前端学习案例1-柯里化的实现
前端学习案例1-柯里化的实现
67 0
前端学习案例1-柯里化的实现
|
前端开发
前端学习案例1-高阶函数2
前端学习案例1-高阶函数2
49 0
前端学习案例1-高阶函数2
|
前端开发
前端学习案例1-高阶函数1
前端学习案例1-高阶函数1
62 0
前端学习案例1-高阶函数1
|
前端开发
前端学习案例2-偏函数2
前端学习案例2-偏函数2
36 0
前端学习案例2-偏函数2
|
前端开发
前端学习案例3-偏函数3
前端学习案例3-偏函数3
65 0
前端学习案例3-偏函数3
|
Web App开发 缓存 前端开发
✨从柯里化讲起,一网打尽 JavaScript 重要的高阶函数
✨从柯里化讲起,一网打尽 JavaScript 重要的高阶函数