问题标签 [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 投票
3 回答
3236 浏览

python - 通过Python中的元素总和查找列表列表的最大值

在列表列表中,我们想要进行的比较是列表的总和,在 Python 中, maximumBy(高阶函数采用比较函数进行测试)的惯用方法是什么?

这是一个 Haskell 实现和示例输出:

以及这些基本库函数的实现,只是为了完整性(如果你想使用 reduce 或其他东西:)

0 投票
4 回答
1271 浏览

haskell - 你如何使用折叠图解决这个 Haskell 问题?

定义一个函数 replicate ,它给定一个数字列表,返回一个列表,每个数字都复制其值。使用折叠、映射和拍摄

..> 复制 [5,1,3,2,8,1,2]

输出:[5,5,5,5,5,1,3,3,3,2,2,8,8,8,8,8,8,8,8,1,2,2]

我已经使用列表理解和递归解决了这个问题:

但是你将如何使用 fold 和 map 来做到这一点?到目前为止我有: 复制 n = map (foldl1 (take n(repeat n)) n) n 这显然是错误的,但我认为我很接近..

所以任何帮助都会很好,谢谢!

0 投票
4 回答
8923 浏览

c++ - C ++中的高阶函数«过滤器»

filter我想用 C++写一个高阶函数。到目前为止,我提出的代码如下:

但是,在编译此代码时,我收到以下我无法理解的错误消息,因此摆脱了:

请告诉我我在这里做错了什么以及实现我想要的那种高阶多态性的正确方法是什么。

谢谢。

编辑:

谢谢大家。这是我在应用您的建议后得到的新代码(现在可以使用了,耶!)

0 投票
1 回答
6106 浏览

haskell - Haskell 平面图

我是一个对 Haskell 感兴趣的初学者,我一直在尝试自己实现 flatmap (>>=) 以更好地理解它。目前我有

它实现了“地图”部分,但没有实现“平面”。
我所做的大多数修改都导致令人沮丧且相当无信息

错误。

我错过了什么?

0 投票
2 回答
607 浏览

f# - F# 高阶属性访问器

我刚刚将我的原型元组升级为记录。有朝一日,它可能会成为一堂真正的课。同时,我想翻译这样的代码:

对此:

问题是我希望Description : Example -> string在声明示例记录时获得一个函数,但我没有。我已经四处寻找并尝试了类的属性,但这也不起作用。我只是在文档中遗漏了一些东西,还是必须手动编写高阶访问器?(这就是我现在使用的解决方法。)

0 投票
2 回答
2154 浏览

scala - Scala ActionListener / 匿名函数类型不匹配

尝试实现类似于http://www.codecommit.com/blog/scala/scala-for-java-refugees-part-6的高阶函数示例中的代码

导致以下

至少对于我系统上的 Scala 编译器版本 2.7.6.final 来说是这样。我能够以显式实现匿名 ActionListener 的 Java 风格的方式实现我想要的。

据我了解,Scala 应该能够使用鸭子类型来使 ActionListener 的这种显式实现变得不必要;那么为什么它不在这里工作呢?在这一点上,我几乎没有鸭子打字的实际​​经验。

0 投票
2 回答
842 浏览

haskell - 常见的递归模式

我已经习惯了 Haskell 的高阶函数。通常我可以用 map、fold 和 scan 等函数替换显式递归模式。但是,我经常遇到以下递归模式,我不明白如何使用高阶函数来表达:

例如,假设我代表分析画面。然后我创建一个数据类型,例如:

如果我想将一个Exprs 列表转换为一个表格结构,我想要一个可能类似于的函数部分:

现在,我看到了三个选项:(1)创建一个函数,它决定给定一个表格和一个列表,表格中的下一个分支是否应该是一个SN(或B,但我们将忽略这种情况);(2) 使用高阶函数来封装 的递归模式f;(3) 使用类似的函数f

最好的选择是什么?

0 投票
3 回答
9689 浏览

php - 根据键数组获取数组的子集

我编写了这个函数来获取数组的一个子集。php 是否有为此的内置函数。我在文档中找不到。如果我重新发明轮子,这似乎是一种浪费。

0 投票
4 回答
1606 浏览

c++ - C ++中的“过滤”高阶函数

filterC++ 标准库和/或 Boost 是否与函数式语言中的函数有任何相似之处?

我能找到的最接近的功能是,std::remove_copy_if但它似乎与我想要的相反。是否boost::lambda有任何功能可以获取我的谓词的否定版本(类似于not在 Haskell 中)?我可以否定我的谓词并将其与std::remove_copy_ifthen 一起使用。

请注意,我不是在问如何filter用 C++ 编写函数。我只是在问标准库和/或 Boost 是否已经提供了这样的功能。

提前致谢。

0 投票
16 回答
2311 浏览

python - 我们把这个(新的?)高阶函数称为什么?

我试图命名我认为是高阶函数的新想法。对于重要的部分,这里是用 Python 和 Haskell 来演示这个概念的代码,后面会解释。

Python:

哈斯克尔:

正如您可能推断的那样,正在迭代序列,利用相邻元素作为您传递它的函数的参数,将结果投影到新序列中。那么,有人看过我们创建的功能吗?这对职能社区的人来说是不是很熟悉?如果不是,我们给它取什么名字?

褶皱赢了!