问题标签 [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.
clojure - 如何部分 conj?
我正在尝试创建一个将多个进程应用于地图的函数,包括使用“conj”向每个地图添加/更新一些标准项目。我通过使用“comp”组合其他几个函数来做到这一点。
所以我试着这样做
这不起作用,因为 conj 想要额外的数据作为第二个参数,而不是第一个。
我认为应该有一种类似直接的方式来编写咖喱 conj,但我不太清楚该怎么做。
list - zip 函数还需要第二个列表,它如何仅使用一个参数列表
我开始学习 Haskell 并找到了一个很好的练习。如下:
因此,练习希望我尝试填补其余部分。该函数应执行以下操作:示例:grouping 2 ['Mark','Hanna','Robert','Mike','Jimmy'] = [(1,'Mark'),(2,'Hanna'),(1,'Robert'),(2,'Mike'),(1,'Jimmy')]
。
所以,我们正在组建由两个学生组成的团队,最后一个学生“吉米”没有队友。
然后,我还查找了预定义函数的zip
作用。它获取两个列表参数并将列表的每个元素连接到一个元组以构建一个元组列表。
我的想法:1)我尝试构建两个函数“grab”和“infinite”。他们看起来如下:
所以,他们所做的是:infinite
我想创建一个无限列表。并且grap
应该采取n
其中的元素。例子grap 2 (infinite 1) = [1,2]
。
我在where -declaration 的第一行中使用这两个来实现上面的给定功能。所以我有:
所以,xs
现在是我的第一个列表zip
,尤其是整数列表。
但现在我的问题是:zip
作为预定义函数还需要第二个列表,尤其是学生姓名的列表,但在给定的函数中,他们只给 zip 一个参数,即ys
作为列表。我怎么能理解呢?
haskell - 米兰达类型错误
谁能告诉我哪里出了问题?
我的理解是:因为f
左边有一个论点,而右边有两个论点?
有更详细的解释吗?
scala - Scala部分应用不清楚
我对函数在Scala中的部分应用不是很清楚……我举个例子:
其输出将是:
所以complexVal
计算了2次,如果我只想计算一次怎么办?
对于具有 javascript 知识的人,例如:
编辑:
那么我之前写的和这个有什么区别:
python - Python 2.7.x 中部分函数的动态生成
假设我想从以下 lambda 在 IPython shell 上动态创建一个函数:
固定ci
到一个新的值。这将类似于以下内容(create_new_f
这是我正在寻找的内容)。
我尝试过使用functools.partial
:
但是当我在 IPython的嵌入式 shell中运行它时,我得到:
AttributeError: 'functools.partial' object has no attribute '__module__'
有没有其他方法可以做到这一点,也许使用装饰器?
主题背景:
- 这是一个提示问题的 IPython问题。
- 这是一个解释问题的线程(仅在 Python 3.x 中修复)。
- 这是SO 中显示问题的另一个线程(请参阅顶部评论)
- 有关此问题的更深入分析,请参阅 IPython 中的此问题。
同样,我正在寻找的是另一种方法。
haskell - 部分应用和sortBy
我正在学习 Haskell,并且一直在尝试部分应用程序。我试图完全应用 sortBy。我不明白结果函数的类型。以及应该如何正确完成?
haskell - 为什么将内置函数应用于被认为是弱头范式的太少参数?
Haskell定义说:
一个表达式是弱头范式(WHNF),如果它是:
- 一个构造函数(最终应用于参数),例如 True、Just (square 42) 或 (:) 1
- 一个内置函数应用于太少的参数(可能没有),如 (+) 2 或 sqrt。
- 或 lambda 抽象 \x -> 表达式。
为什么内置函数会受到特殊对待?根据 lambda 演算,部分应用函数与任何其他函数之间没有区别,因为最后我们只有一个参数函数。
javascript - JS中关于跨循环引用相同数据的变量的规则是什么?
我只需要使用部分应用程序将数据传递给回调,我发现我需要一个间接层来防止循环的后续运行更改我传递给回调的数据。
在这里查看一个非常简单的工作示例:http: //jsfiddle.net/s5gVj/
(如果 jsfiddle 是不言自明的,请随时直接跳到下面的问题)
没有间接
这将始终将标签设置为“按下按钮 1”。
无论按下哪个按钮,都会发生这种情况。
间接地,通过函数
同时,在中间使用一个函数可以解决问题
对于第一个按钮,结果将是“按下按钮 0”
对于第二个按钮,它将是“按下按钮 1”。
为什么会这样?函数调用是否有什么特别之处可以确保变量被复制,从而不再引用相同的数据,或者还有其他事情发生?
我希望在每次迭代时重新创建在 for 循环中声明的变量,因此每次迭代都是分开的,但我想不是这样吗?
python - functools.partial 与普通 Python 函数
我正在学习部分以及何时使用它们。在这个关于partials vs lambdaspartials
的页面中,接受的答案解释了over的优点之一lambdas
,即 partials 具有对内省有用的属性。所以我们可以用部分做以下事情:
事实上,我们不能这样做lambdas
:
但实际上,我们也不能用“普通”的 Python 函数来做到这一点:
为什么 partials 比普通的 Python 函数有更多的功能?这种设计的意图是什么?内省是否被认为对正常功能无用?