与柯里化定义类似:函数柯里化的实现_前端-pww的博客-CSDN博客

判断下一个括号中是否有参数,如果有就拼接参数,继续调用curry函数

如果没有参数,则直接返回fn

function add1 (...args) {//求和return args.reduce((a, b) => a + b)
}
function currying (fn,...args) {return function(...rest) {if (rest.length) {return currying(fn,...args,...rest)} else {return fn.call(this,...args)}}
}
let add = currying(add1)
console.log(add(1)(2)(3)(4, 5)())  //15
console.log(add(1)(2)(3, 4, 5)())  //15
console.log(add(1)(2, 3, 4, 5)())  //15

实现add(1)(2)(3)相关推荐

  1. Java Calendar.add()方法的使用,参数含义。指定时间差。

    cal.add()方法中的参数含义: 第一个参数如果是1则代表的是对年份操作,2是对月份操作,3是对星期操作,5是对日期操作,11是对小时操作,12是对分钟操作,13是对秒操作,14是对毫秒操作. 第 ...

  2. Docker 入门系列(7)- Dockerfile 使用(FROM、RUN、CMD、EXPOSE、ENV、ADD、COPY、ENTRYPOINT、VOLUME、WORKDIR)

    Dockerfile 是一个文本格式的配置文件,用户可以使用 Dockerfile 来快速创建自定义的镜像. 1. 基本结构 Dockerfile 由一行行命令语句组成,并且支持以 # 开头的注释行. ...

  3. git add . 之后 想执行回滚操作(git add 到本地仓库的代码回滚到没有add 之前的操作)

    git add 到本地仓库的代码回滚到没有add 之前的操作 ,如果git 非常熟悉临时忘记了命令 回滚单个文件的命令:git restore --staged  xx文件名 回滚所有add 的文件直 ...

  4. Multiple substitutions specified in non-positional format; did you mean to add the formatted=”false”

    make 编译android代码的出现这样的错误 这个问题可能是跟android 的版本有关系就是xml 中的String.xml文件的文字使用%s 无法识别引起的, 不过有些版本可以识别 下面的就有 ...

  5. Kotlin 使用list.add 时候报错的处理方法

    在Kotlin 中 使用list.add 方法的时候出现报错例如下面的现象 这个时候处理的方法就是把List 更换为MutableList 这样就不会报错了 下面是处理之后的.

  6. Can't add more than 2 views to a ViewSwitcher

    最近使用到  TextSwitcher 来实现文字上下轮播的效果,出现了 Can't add more than 2 views to a ViewSwitcher 看了下源码 /*** {@inhe ...

  7. List 数据add进去的是一个bean 的时候删除数据的方法

    这个时候要删除数据,也是用到add 进 list 里面的bean 然后使用for 循环对应里面的数据的方法 例如: selectList.remove(findSeatInfoBean(xx, xx) ...

  8. PyTorch 笔记(05)— Tensor 基本运算(torch.abs、torch.add、torch.clamp、torch.div、torch.mul、torch.pow等)

    1. 函数汇总 Tensor 的基本运算会对 tensor 的每一个元素进行操作,此类操作的输入与输出形状一致,常用操作见下表所示. 对于很多操作,例如 div.mul.pow.fmod.等, PyT ...

  9. [WARNING] unable to add QUERY_STRING=XXXX to uwsgi packet, consider increasing buffer size

    1. 问题现象 在用 flask uwsgi api 报文发送 GET 请求时,请求参数的 value 值 "XXX" 太长时,会报下面的错误. [WARNING] unable ...

  10. LeetCode刷题记录4——67. Add Binary(easy)

    LeetCode刷题记录4--67. Add Binary(easy) 目录 LeetCode刷题记录4--67. Add Binary(easy) 题目 语言 思路 后记 题目 今天这题是与字符串相 ...

最新文章

  1. POJ 2528 Mayor's posters(线段树)
  2. linux mysql设置开机启动脚本_linux下添加oracle自启动脚本
  3. pil获得图片_OpenCV读取图片与PIL读取图片的差别
  4. windows7使用vhd虚拟磁盘
  5. 记-python socket服务器端四部曲
  6. 养成这6个编程好习惯,助你减少90%BUG
  7. 简单看看 Go 1.17 的新版调用规约
  8. payara 创建 集群_高可用性(HA),会话复制,多VM Payara群集
  9. Nanachi发布:基于 React 的多端小程序转译框架
  10. 举牌人表情包使用nodejs实现
  11. 基于linux在线预览
  12. GDK获得各种scale factor
  13. 战旗助手服务器代码,炉石传说酒馆战旗助手
  14. Excel进行灵敏度分析
  15. 如何在线制作ico图标,自己动手丰衣足食
  16. Weighted Quick Union
  17. 为什么计算机起始时间、为什么Java时间戳、是1970年1月1日?
  18. mysql1598_mysql中主从复制中出现ERROR 1598 (HY000)错误
  19. C#网络TCP客户端的实现
  20. luogu P3647 [APIO2014] 连珠线

热门文章

  1. html图片加滚动文字,滚动文字、图片等html代码
  2. linux内核killler,Linux内核参数overcommit_memory和OOM killer介绍
  3. Apache Commons DbUtils 入门
  4. Java虚拟机的什么周期
  5. HttpURLConnection_Get和Post请求文件上传
  6. 4位先行进位电路 logisim_数字电路基础之逻辑电路
  7. Spring Boot+Mysql实现的电影在线资讯系统
  8. 基于JAVA+SpringMVC+Mybatis+MYSQL的考勤管理系统
  9. 基于JAVA+Servlet+JSP+MYSQL的超市管理系统
  10. 利用.NET绘图技术制作水晶按钮控件(转)