问题标签 [currying]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2422 浏览

scala - 如何在 Scala 中对函数进行柯里化

我试图在 List.foreach 中调用 2 参数函数,第一个参数固定为循环。事实上,我想将两个参数的函数柯里化为一个参数的函数,该函数返回一个参数的函数(如 List.foldLeft 所做的那样)

这不起作用:

这有效:

但我不想更改 mathFunc1 的签名,所以我想做类似的事情:

0 投票
8 回答
8881 浏览

php - 是否可以在 PHP 中进行方法调用?

我有一个为 WSDL 文件生成的SoapClient实例。除了一个方法调用之外,所有方法调用都需要传递用户名和密码 id。

有没有办法对方法调用进行柯里化,以便我可以省略用户名和密码?

0 投票
2 回答
353 浏览

currying - 柯里化和编译器设计

这是一个家庭作业问题:

解释例程类型在部分参数化中所经历的转换。

到目前为止,我理解柯里化。但是我找不到任何关于编译器如何在内存中实现这​​样的函数的资源。我能否指出正确的方向,可能是要搜索的关键字或资源链接,或者可能是在此处解释编译器如何生成类型和符号表以及与问题相关的其他内容。

谢谢。

0 投票
5 回答
3578 浏览

f# - 您如何在 F# 或任何函数式语言中对第二个(或第三个、第四个、...)参数进行 curry?

我刚刚开始使用 F#,看看如何使用 currying 将第一个参数预加载到函数中。但是如何使用第二个、第三个或任何其他参数来做到这一点?命名参数会使这更容易吗?是否有任何其他函数式语言具有命名参数或其他方式使柯里化对参数顺序无动于衷?

0 投票
3 回答
676 浏览

scala - 是否可以在 Scala 中以另一种方式进行咖喱?

让我们假设这个函数:

这个片段:

可以咖喱第一部分吗?就像是:

这样我就可以发送应该执行关闭的对象,并在它们上执行相同的块?

0 投票
2 回答
6819 浏览

c# - (如何)是否可以绑定/重新绑定方法以使用不同签名的委托?

我是一名 c++ 开发人员,在 c++ 中使用过信号和插槽,在我看来这类似于 c# 中的委托。我发现自己在搜索“绑定”提供的功能时不知所措,并且觉得我一定遗漏了一些东西。

我觉得像下面这样的东西,在 c++ 中是可能的,在 c# 中应该是可能的。这是我将在 C++ 中执行的一些伪代码:

不幸的是,我无法找到关于 c# 委托的绑定/重新绑定的任何参考。我错过了什么吗?在 c# 中是否有一些完全不同的方法可以做到这一点?

0 投票
4 回答
256 浏览

scala - 将具有 N 个参数的 def 实现为 FunctionN 类型的 val

我可以使用不带参数def的 a来实现:valdef

为什么这不能扩展到def将 N args 实现为 val FunctionN?我希望可以实现类似的东西:

带有懒惰的功能val。就像是:

我知道这种语法似乎不适用于 2.8。有什么我遗漏的东西,为什么我不能将参数作为函数来实现defval

0 投票
11 回答
4267 浏览

f# - "int -> int -> int" 这在 F# 中是什么意思?

0 投票
4 回答
297 浏览

c# - 在 C# 中确认 Greenspun 第十定律

我正在尝试在 C# 中实现一个基础结构,它允许我进行任意数学表达式。例如,我希望能够采取类似的表达方式

asin(sqrt(z - sin(x+y)^2))

并把它变成一个对象,让我可以根据 x、y 和 z 来评估它,得到导数,并可能对其进行某种符号代数。人们对 C# 中的一个好的模型有什么想法?

我有我自己的看法,恐怕这会进入建筑航天领域,所以我想确保情况并非如此。

基本上,像 sin、+、sqrt 等函数都有基于基类的类:

到目前为止,如此简单。诀窍是如何组合函数。在这里,我相信我想要一种类似柯里化的方法,以便我可以评估单个参数的函数,并保留其他参数。所以我正在考虑有一个这样的工厂类:

等等。我主要担心的是泛型类型可能会使系统无法使用(如果用户需要知道完整的泛型类型只是为了评估),并且我可能无法从输入参数构造所有泛型类型。

感谢您的输入!

0 投票
31 回答
77920 浏览

javascript - 我怎样才能使 var a = add(2)(3); //5 工作?

我想让这种语法成为可能:

根据我在http://dmitry.baranovskiy.com/post/31797647阅读的内容

我不知道如何使它成为可能。