问题标签 [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.
syntax - F# 语句的语义
有人可以向我描述这个 F# 表达式吗?
val
关键字是什么意思?
type -> type
通常表示返回指定类型的函数是真的吗?那么是否type -> type -> type
表示一个函数返回一个返回指定类型的函数呢?
haskell - Confusion about currying and point free style in Haskell
I was trying to implement the function
which was the topic for this question. I tried to do this without explicit recursion. I came up with the following code
My function didn't work since it wasn't lazy (which was required in the question), so no upvotes there :-).
However, I did not stop there. I tried to make the function point-free so that it would be shorter (and perhaps even cooler). Since the arguments f
and xs
are the last ones in the expression I just dropped them:
But this did not work as expected, in fact it didn't work at all:
Why is that? I was under the impression that it was possible to simply drop trailing function arguments, which basically is what currying is about.
visual-studio-2010 - F#:柯里化重载/元组重载问题
在将一些代码迁移到最新版本的 F#(包含在 VS2010 b1 中)时,我遇到了一个问题,我想知道是否有可用的解决方法以及 - 如果没有 - 为什么 F# 编译器的行为被修改为不支持剧情。
此代码产生以下编译时错误:
错误 FS0191:此方法的一个或多个重载具有 curried 参数。考虑重新设计这些成员以采用元组形式的参数
请注意,这曾经在 F# 1.9.6.2(9 月 CTP)上完美运行
c - 有没有办法在 C 中进行柯里化?
假设我有一个指向函数的指针_stack_push(stack* stk, void* el)
。我希望能够调用curry(_stack_push, my_stack)
并取回一个只需要void* el
. 我想不出办法,因为 C 不允许运行时函数定义,但我知道这里有比我聪明得多的人 :)。有任何想法吗?
ocaml - 在纯函数式 ML 中进行 N 维游走?
这个想法是遍历多个维度,每个维度都定义为一个范围
所以函数类似于fun foo y x
或fun foo z y x
可以应用于整个正方形 X Y 或立方体 X Y*Z。
SML/NJ 不喜欢我在下面的实现:
这是代码:
这种构造甚至可能吗?
欢迎任何指针。
ruby - 如何在 ruby 中实现 curry(部分函数)
我需要一些在 ruby 中实现 curry 函数的示例(1.8.6 或 1.8.7 而不是 1.9)。
c# - “Uncurrying”.NET 中的实例方法
您可以在创建时不指定实例的情况下创建实例方法的委托吗?换句话说,你能创建一个“静态”委托,它的第一个参数是应该调用该方法的实例吗?
例如,如何使用反射构造以下委托?
我知道我可以使用 methodInfo.Invoke,但这比较慢,并且在调用它之前不会检查类型正确性。
当您拥有MethodInfo
特定静态方法的 时,可以使用 构造委托Delegate.CreateDelegate(delegateType, methodInfo)
,并且静态方法的所有参数保持自由。
正如 Jon Skeet 指出的那样,如果方法在引用类型上是非虚拟的,您可以简单地应用相同的方法来创建实例方法的开放委托。决定在虚拟方法上调用哪个方法是很棘手的,所以这不是那么简单,而且值类型看起来根本不起作用。
对于值类型,CreateDelegate
表现出非常奇怪的行为:
如果实例方法属于值类型(这适用于引用类型),则作为目标对象调用CreateDelegate
with会引发绑定异常。null
几年后的一些跟进:func42(CultureInfo.InvariantCulture);
导致返回"-201040128"
而不是在我的示例中的错误绑定目标是"42"
可能允许远程代码执行的内存损坏(cve-2010-1898);这已在 2010 年的ms10-060安全更新中得到修复。当前框架正确打印 42!这并没有使回答这个问题变得更容易,但解释了示例中特别奇怪的行为。
functional-programming - 在函数式编程中什么是“currying”?
作为一个未重构的命令式和 OO 程序员写作...
最近搞砸了 Erlang 和 Haskell。我喜欢 Erlang,但还不确定 Haskell。函数式看起来更像数学而不是编程,希望这是有道理的。函数式编程似乎非常强大。
阅读有关 interwibble wrt 函数式编程的文档时,我经常遇到“currying”这个词。我似乎只找到了一些让我头疼的文档——很多术语没有定义。
什么是咖喱?
我一直在寻找类似的已经发布的问题,但没有找到任何东西,所以请随时将我指向已建立的线程。
grails - 使用 Curry 定义 Grails 标签
我有一个 grails 标签库 TpTagLib,我想在其中定义 4 个新标签,它们仅在一个常量值上有所不同,所以我尝试使用 curry。但是有一个例外:groovy.lang.MissingPropertyException: No such property: attr for class: TpTagLib
有谁知道为什么会发生此异常?这是代码:
operators - 有没有办法在 SML/NJ 中获得二元运算符的 Curried 形式?
例如,而不是
我宁愿有
用于
显然我可以自己做这件事,例如,
但我想确保我不会错过更优雅的方式。