问题标签 [partial-application]
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.
scala - Scala 中的部分应用函数
想知道您是否可以评论为什么以下两种情况的行为不同:
以下作品:
但以下没有:
错误:类型不匹配;发现:所需单位:Int =>?la.foreach(println(func1(_)))
scala - 从部分应用的函数中获取 var vs val
我正在尝试通过使用部分应用的函数在 scala 中围绕我的数据库调用创建一个方便的包装器:
主要用于自动关闭连接/结果集。但是,我希望rs
变量作为 var 而不是 val 返回。每当我尝试将 rs 分配给查询中的结果集时,我都会收到一个错误,我无法将其重新分配给 val。
或者,如果您有其他方法可以最大限度地重用打开/关闭流/连接的代码,也请分享。
编辑:正如 Randall Schulz 提到的,Scala ARM将解决实际问题。但是,Scala 不支持我发布的问题。
javascript - 使用固定参数的自定义顺序柯里化 Javascript 函数
柯里化函数可能很有用:
现在想象我们必须使用另一个参数顺序错误的函数
如何使用 bind 函数获得相同的结果 - 使用 otherTag 函数创建强标签。
如何仅使用绑定来咖喱此功能?
我对基于像这样包装 otherTag 函数的解决方案不感兴趣:
我想知道是否可以将参数传递给 bind 来告诉我们想要咖喱的参数的顺序。
haskell - Haskell dollar operator application
I'm having trouble with understanding how function application works with currying in haskell. If I have following function:
I understand that to partially apply this function I need to provide (a -> b)
function ($
's first argument).
Why then is it possible to apply a value first (i.e. reverse arguments)?
What am I missing here?
scala - “免费”获取案例类的部分构造函数
考虑一个定义两个属性的抽象类
这是各种案例类的基类,例如
目标:我最终希望能够以两种方式创建上述案例类的实例,即
方法:因此定义一个帮助类来定义has
并允许我部分构造A
s似乎是合理的
问题:当前的机器不允许像Bar(1)
这样的调用,因为这实际上是对 的调用Bar.apply(1)
,即apply
由编译器生成的对象定义的方法的调用Bar
。
如果我可以强制编译器将Bar
对象object Bar extends PartialAConstructor
生成为
但是,似乎不可能影响案例类的伴随对象的生成。
所需属性:
案例类:
Foo
等Bar
应该保留案例类,因为我想使用编译器生成的好东西,例如结构相等copy
和自动生成的提取器。“完全”结构平等:将案例类定义为
不是一个选项,因为编译器生成的
/li>equals
方法只考虑第一个参数列表,因此以下内容将错误地成立:尽可能少的代码重复:例如,当然可以定义一个
但是对于扩展的每个案例类都必须这样做
A
,即 isFoo
等Bar
。
c - 在 C 预处理器中是否可以进行部分宏应用程序/柯里化?
作为问题的一个例子,有没有办法partialconcat
在下面的代码中实现宏?
编辑:
这是另一个示例,给定一个可变参数宏(请参阅this answer to another questionFOR_EACH
中的示例实现)。
假设我想在多个对象上调用一个成员,可能在另一个宏中用于更大的目的。我想要一个行为如下的宏 callMember:
生产
这需要callMember(someMember)
产生一个行为类似的宏
haskell - 在 Haskell 中,当你只传递一个列表时,map 函数意味着什么?
在我要调试的 Haskell 项目中,代码中有一些实例map
仅与一个参数一起使用 - 一个列表 - 被传递。
例如
和
在这种情况下是什么map
意思/做什么?
python - functools partial 是如何做到的?
我无法理解部分函数在 functools 中的工作原理。我从这里得到以下代码:
现在排队
我知道我传递给incr
它的任何参数都将传递y
给lambda
哪个将返回sum(1, y)
ie 1 + y
。
我明白那个。但我不明白这一点incr2(4)
。
get 如何像偏函数4
一样传递?x
对我来说,4
应该替换sum2
. x
和之间有什么关系4
?
clojure - Clojure 部分应用程序 - 如何获取“地图”以返回函数集合?
我有一个函数,我基本上是从 Clojure google group 的讨论中抽出来的,它接受一个集合和一个任意长度的函数列表,然后过滤它以返回一个新集合,其中包含原始列表的所有元素,其中至少一个函数的计算结果为真:
我正在为Project Euler Problem 1制定一个通用的解决方案,所以我像这样使用它:
这给出了正确的答案。
但是,我想修改它,以便可以将整数而不是函数传递给它,例如
我可以将 3 和 5 替换为任意数量的整数,并将 (=0 (mod xy)) 的函数包装作为 multi-any-filter 函数中的匿名函数。
不幸的是,这超出了我的 Clojure 能力的极限。我在想我需要对map
args 列表做些什么,但我不确定如何map
返回一个函数列表,每个函数都在等待另一个参数。Clojure 似乎不支持像我在其他函数式语言中学习如何使用柯里化的方式。也许我需要partial
在正确的位置使用,但我不太确定如何使用。
换句话说,我希望能够传递任意数量的参数(不是函数),然后将这些参数中的每一个都包装在同一个函数中,然后将该函数列表传递juxt
给上面的功能。funcs
multi-any-filter
感谢您的任何提示!
javascript - javascript和柯里化
我正在阅读 John Resig 的 Javascript ninja 的秘密,并尝试了其中一个关于 currying 和 parital 函数的示例。代码如下:
但是,以下代码似乎会生成错误 Uncaught TypeError: Illegal invocation on apply 函数。
我似乎无法弄清楚原因,因为这一切似乎都是有道理的。
将返回一个匿名函数,该函数使用函数上下文 ( )bindClick
调用该函数,并且参数将是elem.addEventListener
window
this
["click", function() {console.log("OK"); }]