什么是“柯里化”?

2024-04-13

我在几篇文章和博客中看到了对柯里化函数的引用,但我找不到一个很好的解释(或者至少是一个有意义的解释!)


柯里化是指将一个接受多个参数的函数分解为一系列函数,每个函数只接受一个参数。这是一个 JavaScript 示例:

function add (a, b) {
  return a + b;
}

add(3, 4); // returns 7

这是一个接受两个参数 a 和 b 并返回它们的和的函数。我们现在将柯里化这个函数:

function add (a) {
  return function (b) {
    return a + b;
  }
}

这是一个带有一个参数的函数,a,并返回一个带有另一个参数的函数,b,该函数返回它们的总和。

add(3)(4); // returns 7

var add3 = add(3); // returns a function

add3(4); // returns 7
  • 第一条语句返回 7,就像add(3, 4)陈述。
  • 第二条语句定义了一个新函数,名为add3那将会 将 3 添加到其参数中。 (这就是有些人所说的闭包。)
  • 第三个语句使用add3再次进行 3 加 4 的操作 结果产生 7。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么是“柯里化”? 的相关文章

随机推荐

  • 以编程方式将 TabLayout 中的选项卡文本颜色更改为不同颜色

    我的屏幕上有 7 个日期选项卡 选择选项卡时 文本为黑色 而其他可选选项卡的颜色为白色 如果日期是另一个月 我希望文本颜色为灰色 我假设第一个选项卡是 0 第二个选项卡是 1 一直持续到 6 如图所示 我想更改选项卡 3 选项卡 4 选项卡
  • Activity 恢复时的 Android 内部类 TextView 参考

    我有一个扩展 CountDownTimer 的内部类 基本上它是一个简单的倒计时器 用于更新活动中的 TextView 并在计时器完成时播放声音 内部类的代码是 public class SetTimer extends CountDown
  • Python 3.2 有等效的 PyMongo 吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我尝试安装pymongo通过 Python 3 2 到我的 Windows 机器简易安装 却发现由于与Python 3 2不兼容而无法安装
  • 什么是 std::false_type 或 std::true_type?

    我看到它的用法如下 template
  • 何时使用 RecoveryCallback 与 KafkaListenerErrorHandler

    我想了解什么时候应该使用 org springframework retry RecoveryCallback 和 org springframework kafka listener KafkaListenerErrorHandler 截
  • 减少 Docker 容器大小

    我正在关注有关 Docker 的在线教程 作者举了这样一个例子 FROM busybox RUN dd if dev zero of tmp test1 bs 1M count 50 RUN dd if dev zero of tmp te
  • 引用对象的 OQL 语法?

    我在中找到所需的对象visualvm v1 3 8 filter heap objects java lang String hibernate ejb naming it toString 它们显示为 java lang String 3
  • 查询Google/Youtube API剩余配额

    有没有办法通过 Google Youtube API 以编程方式查询当天的剩余配额 None
  • 如何将 CMake 输出保存到文件?

    我通常可以通过以下方式保存 bash 命令的输出 gt gt output file txt 但是当我执行时cmake输出仍然发送到屏幕而不是预期的输出文件 cmake D CMAKE BUILD TYPE RELEASE D CMAKE
  • 如何在Javascript中确定数字是奇数还是偶数[重复]

    这个问题在这里已经有答案了 谁能指点我一些代码来确定 JavaScript 中的数字是偶数还是奇数 我正在尝试做类似的事情 if intellect is even var magic1 intellect 2 else var magic
  • 设计基于 Firebase 的可扩展 Feed 模型

    问题 如何设计一个以 Firebase 作为后端 可扩展的社交网络 提要 可能的答案 MVP 解决方案是设计一个feedsroot 子级 每个用户一个 并在每个关注者的提要中附加来自关注用户的任何新帖子 users user1 name b
  • 重新采样栅格

    我正在尝试将高分辨率 25 米 和分类数据 1 到 13 的森林覆盖栅格重新采样为新的RasterLayer分辨率较低 约 1 公里 我的想法是将森林覆盖数据与其他较低分辨率的栅格数据结合起来 I tried raster resample
  • 区分 8 种颜色中的一种最准确的方法是什么?

    想象一下我们如何使用一些基本颜色 RED Color 196 2 51 RED ORANGE Color 255 165 0 ORANGE YELLOW Color 255 205 0 YELLOW GREEN Color 0 128 0
  • img src 属性中使用 javascript 进行 XSS 攻击

    一些较旧的浏览器容易受到 XSS 攻击 img src 当前版本的 IE FF Chrome 不是 我很好奇是否有浏览器容易受到类似的攻击 img src somefile js or 或其他类似的地方 somefile js 包含一些恶意
  • Jenkins Git Publisher 标签未检测到环境变量

    在我的 Jenkins bash 脚本中 我导出以下环境变量 export TAG NAME v LIVE VERSION LIVE BUILD 在 Git 发布者部分中 我尝试创建一个标签 其标签名称字段填充为 TAG NAME 但它试图
  • atol() 与 strtol()

    atol 与 strtol 有什么区别 根据他们的手册页 它们似乎具有相同的效果以及匹配的参数 long atol const char nptr long int strtol const char nptr char endptr in
  • GetAssemblyIdentity 版本始终为 1.0.0.0

    尽管文件版本和产品版本均在 DLL 中定义 并且当我在 Windows 7 中查看其属性时正确显示 但版本为 1 0 0 0 有什么建议吗
  • 更改输入状态会延迟一个字符(useState 挂钩)

    我正在尝试在我的社交网络中实现用户个人资料的即时搜索 它似乎有效 但在输入更改时设置状态 使用挂钩 会导致延迟一个字符 我研究了一下 发现状态延迟的问题可以通过在 setState 中使用回调函数来解决 但是 useState 不支持这一点
  • 获取特定应用程序的屏幕截图

    我知道我可以使用 Graphics CopyFromScreen 获取整个屏幕的屏幕截图 但是 如果我只想要特定应用程序的屏幕截图怎么办 PrintWindow win32 api 将捕获窗口位图 即使该窗口被其他窗口覆盖或位于屏幕外 Dl
  • 什么是“柯里化”?

    我在几篇文章和博客中看到了对柯里化函数的引用 但我找不到一个很好的解释 或者至少是一个有意义的解释 柯里化是指将一个接受多个参数的函数分解为一系列函数 每个函数只接受一个参数 这是一个 JavaScript 示例 function add