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

  

相关文章
|
数据采集 网络协议 开发工具
如何进行iOS技术博客的备案?
如何进行iOS技术博客的备案?
210 2
|
XML 开发工具 Android开发
Repo工作原理及常用命令总结——2023.07(上)
Repo工作原理及常用命令总结——2023.07(上)
2209 0
|
SQL 存储 数据采集
【技术分享】元数据与数据血缘实现思路
【技术分享】元数据与数据血缘实现思路
6957 0
flutter-barrage-craft — 能成为pub.dev中最好用的弹幕插件吗🤔?
Hi👋,最近我开发了一个弹幕插件,想知道它是否有成为 pub.dev 中最好用的弹幕插件的潜力。能帮我评估一下吗?🐱‍🏍
|
SQL 关系型数据库 MySQL
Flink CDC产品常见问题之查询时报错如何解决
Flink CDC(Change Data Capture)是一个基于Apache Flink的实时数据变更捕获库,用于实现数据库的实时同步和变更流的处理;在本汇总中,我们组织了关于Flink CDC产品在实践中用户经常提出的问题及其解答,目的是辅助用户更好地理解和应用这一技术,优化实时数据处理流程。
|
存储
箭头函数多个函数体
箭头函数多个函数体
146 0
|
数据库
第二章用表组织数据
第二章用表组织数据
|
程序员 数据库
什么是网站404,为啥是404?
无论何时浏览网页出现404错误,我们都知道这意味着网页出现了访问错误,即网页丢失。事实上,这早已是人所共知的常识。404作为一个标准的HTTP返回代码,被用来表示网页服务器HTTP的响应状态。但是,它的历史来源却充满了神秘和诱人的探索。21世纪初,甚至有一群人试图研究404错误的来源。
1141 0
什么是网站404,为啥是404?
学习多线程之Semaphore工具解释
学习多线程之Semaphore工具解释
183 0
|
SQL 安全 数据挖掘
【业务数据分析】—— 用户留存分析(以挖掘Aha时刻为例)
【业务数据分析】—— 用户留存分析(以挖掘Aha时刻为例)
1193 0