🎶 Sym - 一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)平台

📕 思源笔记 - 一款桌面端笔记应用,支持 Windows、Mac 和 Linux

🎸 Solo - B3log 分布式社区的博客端节点,欢迎加入下一代社区网络

♏ Vditor - 一款浏览器端的 Markdown 编辑器

功能 - 柯里化函数

2020-01-23

描述

将一个函数实现柯里化传参。

提示

  • 使用递归
  • 如果提供的参数( args )个数充足,则调用传递的函数 fn
  • 否则的话,返回一个包含剩余参数的柯里化函数 fn
  • 如果你想要柯里化一个可以接受任意参数的函数(一个可变参函数,如 Math.min() ),你可以将参数的数量传递给第二个可选参数 arity

代码

const curry = (fn, arity = fn.length, ...args) =>
  arity <= args.length ? fn(...args) : curry.bind(null, fn, arity, ...args);

示例

对传入的参数进行计算:

curry(Math.pow)(2)(10); // 1024
curry(Math.min, 3)(10)(50)(2); // 2

返回总目录

每天 30 秒系列之 JavaScript 代码


欢迎注册黑客派社区,开启你的博客之旅。让学习和分享成为一种习惯!

1 评论
garyvalue • 2020-01-24
回复 删除

对一个函数进行柯里化。