问题标签 [higher-order-functions]

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 投票
16 回答
20154 浏览

list - Perl 的地图有什么意义?

没有真正理解地图功能的意义。任何人都可以用例子解释它的用途吗?

使用它而不是循环是否有任何性能优势,或者它只是糖?

0 投票
14 回答
49170 浏览

php - 在 PHP 中转置多维数组

你将如何在 PHP 中翻转 90 度(转置)多维数组?例如:

你将如何实施flipDiagonally()

编辑:这不是家庭作业。我只是想看看是否有任何 SOers 有比最明显的路线更有创意的解决方案。但是由于一些人抱怨这个问题太简单了,那么一个更通用的解决方案如何处理第 n数组呢?

即你将如何编写一个函数,以便:

?(ps。在这种情况下,我认为 12 嵌套for loops不是最好的解决方案。)

0 投票
3 回答
378 浏览

ocaml - 在纯函数式 ML 中进行 N 维游走?

这个想法是遍历多个维度,每个维度都定义为一个范围

所以函数类似于fun foo y xfun foo z y x可以应用于整个正方形 X Y 或立方体 X Y*Z。

SML/NJ 不喜欢我在下面的实现:

这是代码:

这种构造甚至可能吗?

欢迎任何指针。

0 投票
7 回答
22616 浏览

scala - Scala中的zipWith(映射多个Seq)

假设我有

我希望生成一个序列,其中 baz(i) = foo(i) + bar(i)。我能想到的一种方法是

然而,这感觉既丑陋又低效——我必须将两个 seq 都转换为列表(它会随着惰性列表爆炸),创建这个临时的元组列表,只是为了映射它并让它被 GCed。也许流解决了懒惰的问题,但无论如何,这感觉都太丑陋了。在 lisp 中,map 函数将映射到多个序列。我会写

并且不会在任何地方创建临时列表。在 Scala 中是否有 map-over-multiple-lists 函数,或者 zip 与解构相结合真的是“正确”的方法吗?

0 投票
4 回答
20550 浏览

php - PHP 是否具有与 Python 的列表理解语法等价的功能?

Python 具有语法甜美的列表推导:

在 PHP 中,我需要做一些循环:

要得到:

数组 ( [0] => 0 [1] => 1 [2] => 4 [3] => 9 [4] => 16 [5] => 25 [6] => 36 [7] => 49 [8] => 64 [9] => 81)

无论如何在PHP中获得类似的列表理解语法吗?无论如何,PHP 5.3 中的任何新功能都可以做到这一点吗?

谢谢!

0 投票
9 回答
88772 浏览

php - 如何按条件过滤数组

我有一个这样的数组:

现在我想通过某些条件过滤该数组,只保留值等于 2 的元素,并删除值不为 2 的所有元素。

所以我的预期结果数组将是:

注意:我想保留原始数组中的键。

我怎么能用 PHP 做到这一点?有什么内置函数吗?

0 投票
5 回答
312 浏览

functional-programming - 这个函数有标准名称吗?

如果将函数应用于所有元素给出相同的结果,你会如何命名一个接受列表和函数并返回 True 的函数?

这个东西有一个很好的普遍接受的名字吗?如果您可以以不那么笨重的方式实施,则可以加分。

0 投票
4 回答
6256 浏览

r - R 中的高级函数 - 是否有官方的 compose 运算符或 curry 函数?

我可以在 R 中创建一个 compose 运算符:

像这样使用:

但我想知道是否有一套官方的函数来做这种事情和其他操作,比如 R 中的柯里化。很大程度上这是为了减少我代码中括号、函数关键字等的数量。

我的咖喱功能:

这对于例如聚合特别好:

我发现它比以下更优雅和可编辑:

基本上我想知道 - 这已经为 R 完成了吗?

0 投票
8 回答
12450 浏览

c - C中的高阶函数

是否有一种“正确”的方法可以在 C 中实现高阶函数。

我主要对这里的可移植性和语法正确性等问题感到好奇,以及是否存在不止一种优点和缺点。

编辑:我想知道如何创建高阶函数的原因是我编写了一个系统来将 PyObject 列表(您在调用 python 脚本时得到)转换为包含相同数据但组织方式不同的 C 结构列表依赖于 python.h 库。所以我的计划是有一个函数,它遍历一个pythonic列表,并在列表中的每个项目上调用一个函数,并将结果放在一个列表中,然后返回。

所以这基本上是我的计划:

为了澄清这个问题:我想知道如何在更安全、更正确的 C 语言中做到这一点。我真的很想保持高阶函数风格,但如果不赞成,我非常感谢以其他方式做到这一点的方法。

0 投票
3 回答
939 浏览

functional-programming - “价值限制”实际上是否意味着没有更高阶的函数式编程?

“价值限制”实际上是否意味着没有更高阶的函数式编程?

我有一个问题,每次我尝试做一些 HOP 时,都会遇到 VR 错误。例子:

我想知道这是 VR 的特定实现的问题,还是在类型系统中不包含突变的可变类型推断语言中没有解决方案的一般问题。