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

c# - 重命名高阶列表操作的基本原理

在 C# 中重命名高阶列表操作的基本原理是什么?(例如:map-> Selectfilter-> Wherefold-> Aggregate

0 投票
1 回答
544 浏览

python - 将高阶函数从 Python 转换为 Haskell

我有以下代码:

重要部分:Pleat 接受任何函数和任何序列,并将该序列中的前几个元素作为参数传递给接收到的函数。

有没有办法在 Haskell 中做到这一点,还是我在做梦?

0 投票
2 回答
1521 浏览

search - 如何在搜索树上定义地图和折叠?

我有一个定义为的搜索树:

我必须定义两个函数,mapStree:

和折叠树:

我不完全了解发生了什么,也不知道该怎么做。

0 投票
4 回答
559 浏览

scala - Scala编译器说我的方法是递归的,以防使用隐式和匿名类

我希望能够编写类似的代码

所以我想我可以用隐式来做到这一点。

当我在 Scala REPL 中执行以下代码时,它被正确定义

但是,当我尝试编译时,

它失败并出现错误

有什么区别?我究竟做错了什么?

0 投票
3 回答
249 浏览

c# - 函数式 C# - 使用或返回 Action 的

浏览网络以在 C# 中更好地处理故障,我已经了解了以下实现策略。第一个对我来说很自然,而另一个实现我不确定它的优点是什么?

1)

code>

2)

2) 是在 C# 中开发高阶函数时的首选策略吗?

而且,我想知道,如果一种方法比另一种更有效。

0 投票
3 回答
1203 浏览

c# - 如何在 C# 中为高阶函数定义参数名称

在 C# 中,可以创建高阶函数,即。以函数g为参数的函数。假设我想创建这样一个函数,它给出一个函数f并返回另一个扩展其功能的函数。如何为返回的增强方法定义参数名称?动机是,我一般都在使用更高阶的方法,其中一些会产生新的方法。这些可能很难使用,因为它们没有附加参数名称等。

说明如何在 C# 中分别定义g和定义的示例:f

我定义了一个方法 Extend,它可以扩展以 aT作为参数并返回一个S.

p>

然后我们可以在我们的类上扩展一个方法而不改变方法。

p>

唉,参数名称positiveNumber不再可用,因为唯一可用的信息是Func<int, int> Calc. 那是当我通过键入来使用扩展方法时new Calc2().Calc(-1),IDE 没有任何帮助,实际上我的论点是错误的。

如果我们可以定义 adelegate并将其转换为 this 那就太好了,但是,这是不可能的。

有什么建议么?

0 投票
5 回答
9036 浏览

functional-programming - OCaml 中的折叠树

如您所知,OCaml 中有更高阶的函数,例如 fold_left、fold_right、filter 等。

在我的函数式编程课程中,引入了名为 fold_tree 的函数,它类似于 fold_left/right,不是在列表上,而是在(二叉树)树上。它看起来像这样:

其中树定义为:

好的,这是我的问题: fold_tree 函数是如何工作的?你能给我一些例子并用人类语言解释吗?

0 投票
1 回答
164 浏览

language-agnostic - 这个高阶函数有名字吗?

我在我的代码和库中随处可见这种模式,但似乎没有我可以在任何地方找到的名称或抽象。

示例(伪代码)

基本上:取一个值,以及一个转换该值的函数。制作该值的副本,对其进行转换并返回它。

现实生活中的例子(C++)

基本上,您有一个就地功能(有副作用)并从中制作了一个不合时宜的功能(没有副作用)。

这种模式有名字吗?您知道使用它的任何库或语言吗?显然函数式语言不会使用它,因为它们一开始就没有引用不透明的函数。

0 投票
3 回答
350 浏览

higher-order-functions - 具有高阶函数的 Web 编程

我们正在课堂上学习高阶函数,我们的教授提到它们对 Web 编程很有用。我不确定在什么情况下这是正确的,并且想知道是否有人在一些常见的 Web 编程任务中对高阶函数有任何经验,以及它们在什么情况下有用。

我通读了我们的书,但没有提到网络编程,我想这只是教授提到的题外话,但它激发了我的兴趣。

谢谢!

0 投票
3 回答
637 浏览

types - 高阶函数的类型

如果我为高阶函数指定(我认为)正确的类型,OCaml 编译器会拒绝该函数的第二次使用。

编码

导致以下错误消息

所以第一次使用f似乎将其第一个参数的类型固定为int -> string. 我能理解。但我没有得到的是省略类型限制来f解决问题。

转移f到全局范围也解决了这个问题:

为什么第一个示例不编译而后面的示例编译?