问题标签 [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.

0 投票
2 回答
250 浏览

scala - Scala 中的部分应用函数

想知道您是否可以评论为什么以下两种情况的行为不同:

以下作品:

但以下没有:

错误:类型不匹配;发现:所需单位:Int =>?la.foreach(println(func1(_)))

0 投票
1 回答
131 浏览

scala - 从部分应用的函数中获取 var vs val

我正在尝试通过使用部分应用的函数在 scala 中围绕我的数据库调用创建一个方便的包装器:

主要用于自动关闭连接/结果集。但是,我希望rs变量作为 var 而不是 val 返回。每当我尝试将 rs 分配给查询中的结果集时,我都会收到一个错误,我无法将其重新分配给 val。

或者,如果您有其他方法可以最大限度地重用打开/关闭流/连接的代码,也请分享。

编辑:正如 Randall Schulz 提到的,Scala ARM将解决实际问题。但是,Scala 不支持我发布的问题。

0 投票
2 回答
440 浏览

javascript - 使用固定参数的自定义顺序柯里化 Javascript 函数

柯里化函数可能很有用:

现在想象我们必须使用另一个参数顺序错误的函数

如何使用 bind 函数获得相同的结果 - 使用 otherTag 函数创建强标签。

如何仅使用绑定来咖喱此功能?


我对基于像这样包装 otherTag 函数的解决方案不感兴趣:

我想知道是否可以将参数传递给 bind 来告诉我们想要咖喱的参数的顺序。

0 投票
4 回答
2213 浏览

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?

0 投票
3 回答
3946 浏览

scala - “免费”获取案例类的部分构造函数

考虑一个定义两个属性的抽象类

这是各种案例类的基类,例如

目标:我最终希望能够以两种方式创建上述案例类的实例,即

方法:因此定义一个帮助类来定义has并允许我部分构造As似乎是合理的

问题:当前的机器不允许像Bar(1)这样的调用,因为这实际上是对 的调用Bar.apply(1),即apply由编译器生成的对象定义的方法的调用Bar

如果我可以强制编译器将Bar对象object Bar extends PartialAConstructor生成为

但是,似乎不可能影响案例类的伴随对象的生成。


所需属性:

  • 案例类:FooBar应该保留案例类,因为我想使用编译器生成的好东西,例如结构相等copy和自动生成的提取器。

  • “完全”结构平等:将案例类定义为

    不是一个选项,因为编译器生成的equals方法只考虑第一个参数列表,因此以下内容将错误地成立:

    /li>
  • 尽可能少的代码重复:例如,当然可以定义一个

    但是对于扩展的每个案例类都必须这样做A,即 isFooBar

0 投票
3 回答
1260 浏览

c - 在 C 预处理器中是否可以进行部分宏应用程序/柯里化?

作为问题的一个例子,有没有办法partialconcat在下面的代码中实现宏?

编辑:

这是另一个示例,给定一个可变参数宏(请参阅this answer to another questionFOR_EACH中的示例实现)。

假设我想在多个对象上调用一个成员,可能在另一个宏中用于更大的目的。我想要一个行为如下的宏 callMember:

生产

这需要callMember(someMember)产生一个行为类似的宏

0 投票
4 回答
578 浏览

haskell - 在 Haskell 中,当你只传递一个列表时,map 函数意味着什么?

在我要调试的 Haskell 项目中,代码中有一些实例map仅与一个参数一起使用 - 一个列表 - 被传递。

例如

在这种情况下是什么map意思/做什么?

0 投票
7 回答
185828 浏览

python - functools partial 是如何做到的?

我无法理解部分函数在 functools 中的工作原理。我从这里得到以下代码:

现在排队

我知道我传递给incr它的任何参数都将传递ylambda哪个将返回sum(1, y)ie 1 + y

我明白那个。但我不明白这一点incr2(4)

get 如何像偏函数4一样传递?x对我来说,4应该替换sum2. x和之间有什么关系4

0 投票
1 回答
614 浏览

clojure - Clojure 部分应用程序 - 如何获取“地图”以返回函数集合?

我有一个函数,我基本上是从 Clojure google group 的讨论中抽出来的,它接受一个集合和一个任意长度的函数列表,然后过滤它以返回一个新集合,其中包含原始列表的所有元素,其中至少一个函数的计算结果为真:

我正在为Project Euler Problem 1制定一个通用的解决方案,所以我像这样使用它:

这给出了正确的答案。

但是,我想修改它,以便可以将整数而不是函数传递给它,例如

我可以将 3 和 5 替换为任意数量的整数,并将 (=0 (mod xy)) 的函数包装作为 multi-any-filter 函数中的匿名函数。

不幸的是,这超出了我的 Clojure 能力的极限。我在想我需要对mapargs 列表做些什么,但我不确定如何map返回一个函数列表,每个函数都在等待另一个参数。Clojure 似乎不支持像我在其他函数式语言中学习如何使用柯里化的方式。也许我需要partial在正确的位置使用,但我不太确定如何使用。

换句话说,我希望能够传递任意数量的参数(不是函数),然后将这些参数中的每一个都包装在同一个函数中,然后将该函数列表传递juxt给上面的功能。funcsmulti-any-filter

感谢您的任何提示!

0 投票
1 回答
691 浏览

javascript - javascript和柯里化

我正在阅读 John Resig 的 Javascript ninja 的秘密,并尝试了其中一个关于 currying 和 parital 函数的示例。代码如下:

但是,以下代码似乎会生成错误 Uncaught TypeError: Illegal invocation on apply 函数。

我似乎无法弄清楚原因,因为这一切似乎都是有道理的。 将返回一个匿名函数,该函数使用函数上下文 ( )bindClick调用该函数,并且参数将是elem.addEventListenerwindowthis["click", function() {console.log("OK"); }]