partial-application相关内容

Java 支持柯里化吗?

我想知道是否有任何方法可以在 Java 中提取它.我认为没有对闭包的原生支持是不可能的. 解决方案 Java 8(2014 年 3 月 18 日发布)确实支持柯里化.missingfaktor的答案中发布的示例Java代码可以重写为: import java.util.function.*;导入静态 java.lang.System.out;//使用 JDK 1.8.0-ea-b75 测 ..

将 Function.prototype.bind 与参数数组一起使用?

如何使用参数数组调用 Function.prototype.bind,而不是硬编码参数?(不使用 ECMA6,所以没有扩展运算符). 我正在尝试在使用回调的模块周围放置一个 Promise 包装器,并且我想绑定所有传入我的包装器方法的参数并绑定它们.然后我想用我自己的回调调用部分应用的绑定函数,它将解析或拒绝一个承诺. var find = function() {var 延迟,绑定;延迟 ..

使用柯里化的参数排序

我最近两次重构了代码以更改参数的顺序,因为有太多的代码像 flip 或 \x ->foo bar x 42 正在发生. 在设计函数签名时,哪些原则可以帮助我充分利用柯里化? 解决方案 对于容易支持柯里化和部分应用的语言,有一系列引人注目的论据,最初来自 Chris Okasaki: 将数据结构作为最后一个参数 为什么?然后,您可以很好地对数据进行组合操作.例如.inser ..

JavaScript curry:有哪些实际应用?

我想我还没搞懂咖喱.我明白它的作用,以及如何去做.我只是想不出我会使用它的情况. 你在 JavaScript 中哪里使用了柯里化(或者主要库在哪里使用它)?欢迎提供 DOM 操作或一般应用程序开发示例. 其中一个答案提到了动画.slideUp、fadeIn 等函数将一个元素作为参数,通常是一个柯里化函数,返回带有默认“动画函数"内置的高阶函数.为什么这比仅应用具有某些默认值的上级函数更 ..
发布时间:2021-12-07 23:13:57 前端开发

为什么 Scala 既提供多个参数列表又提供每个列表多个参数?

多个参数列表,例如def foo(a:Int)(b:Int) = {} 和每个列表的多个参数,例如def foo(a:Int, b:Int) = {} 据我所知在语义上是等价的,而且大多数函数式语言只有一种声明多个参数的方法,例如F#. 我认为支持这两种函数定义风格的唯一原因是允许使用只有一个参数的参数列表进行类似语法的语言扩展. def withBufferedWriter(file: ..
发布时间:2021-12-07 13:20:22 其他开发

下划线定义匿名函数的规则是什么?

我使用 _ 作为占位符来创建匿名函数,问题是我无法预测 Scala 将如何转换我的代码.更准确地说,它错误地确定了我想要的匿名函数有多大. List(1,2,3) foreach println(_:Int)//错误!List(1,2,3) foreach (println(_:Int))//工作List(1,2,3) foreach(println(_:Int))//工作 使用 -Xpri ..

咖喱怎么能去?

在像Haskell这样的函数式编程中,我可以定义函数 添加a b = a + b 然后 add 3 将返回一个带有一个参数的函数,并返回 3 +某物 如何在GO中执行此操作? 当我定义一个带有多个(例如n个)参数的函数时,我只能给它一个参数而得到另一个带有n-1个参数的函数吗? 更新: 很抱歉我原来的问题中的单词不准确. 我认为我的问题应该作为两个要求来提出: ..

最外部的评估策略如何评估功能的部分应用和咖喱函数的应用

赫顿说 在Haskell编程 在计算表达式时,应以什么顺序执行归约?一种常见 称为最内在评估的策略是,始终选择最内在的Redex, 不含其他redex.如果最里面的redex不止一个,按照惯例,我们选择一个 从表达式最左侧的位置开始. 评估表达式的另一种常见策略是对最内层的评估,始终是 选择一个最外部的Redex,因为它不包含在其他Redex中.如果超过 然后像以前一样选择一个这样的 ..