Sym - 一个用 Java 实现的现代化社区平台 • 源码 • 注册

Pipe - 小而美的开源博客平台 • 体验 • 皮肤
Solo - 一个用 Java 实现的博客系统,为你或你的团队创建个博客吧! • 源码下载 
Wide - 一个基于 Web 的 Go 语言 IDE • 教程试用

功能 - 柯里化函数

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
回复 删除

对一个函数进行柯里化。