问题标签 [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.
haskell - 以无点风格编写函数的一般方案是什么?
目前我正在完成20 个中级 Haskell 练习,这是一个非常有趣的练习。Functor
它涉及实现类型类和Monad
(以及将Functor
s 和s 作为参数的函数)的各种实例,Monad
但使用可爱的名称,例如Furry
andMisty
来掩饰我们正在做的事情(产生一些有趣的代码)。
我一直在尝试以无点的方式来做这件事,我想知道是否有一个通用的方案可以将有点(?)定义变成无点定义。例如,这是 的类型类Misty
:
(功能unicorn
和banana
是return
和>>=
,以防不明显)这是我的apple
(相当于flip ap
)的实现:
练习的后面部分让你实现版本liftM
等liftM2
。这是我的解决方案:
现在,banana1
(相当于liftM
或fmap
)我能够通过合适的定义以无点风格实现appleTurnover
. 但是对于其他三个函数,我不得不使用参数。
我的问题是:是否有将此类定义转换为无点定义的方法?
powershell - 选择/映射 Powershell 数组的每个项目到一个新数组
我在 Powershell 中有一个文件名数组,我想为每个文件名添加一个路径,并将结果放入一个新数组中。
在 C# 中,我可以使用 Linq 来做到这一点......
但是在 Powershell 中执行此操作的惯用方法是什么?看起来我可以使用一种 foreach 语法,但我认为必须有一种更简洁、更实用的方法来做到这一点。
python - 高阶函数与循环 - 运行时间和内存效率?
使用高阶函数和 Lambda 会使运行时间和内存效率更好还是更差?例如,将列表中的所有数字相乘:
对比
除了较少的代码行/使用功能方法之外,HOF 版本是否比循环版本有任何优势?
编辑:
我无法将此添加为答案,因为我没有所需的声誉。我按照@DSM 的建议使用 timeit 来分析循环和 HOF 方法
这是我的结果:
平均而言,循环方法似乎比使用 HOF 更快。
lambda - Lambda演算表达式实现函数应用
我刚刚找到了以下 lambda 演算表达式:
所以这是一个函数,它接受一个参数 f 并返回另一个函数,该函数接受一个参数 x 并产生 x 应用于 f 的结果。上述表达式的结果将是 (λ b . b)。
这让我想起了部分应用程序和柯里化,但是“由内而外”的函数应用程序 (fx) 引起了我的兴趣。
这个表达有更深层次的理论意义吗?
sml - SML/NJ 中的高阶函数
我正在寻求解决问题的帮助。我正在尝试编写一个在 ML 中同时传递列表和函数的函数。基本上程序应该做的是获取一个列表并通过函数运行每个元素。如果函数返回 true,则将元素添加到列表中,并在函数完成执行后返回列表。这是我的代码:
任何帮助将不胜感激。
haskell - 需要 Haskell 高阶函数帮助
这段代码有什么问题?
我想将该addNum
函数作为divideby
除数的输入,然后输出答案。所以这个divideby
函数应该作为一个高阶函数。
这段代码有什么问题?它给出以下错误:
haskell - 这是 Haskell 高阶函数吗?
我想知道 shift 是否是高阶函数。
haskell - 如何使用 Haskell 高阶函数 foldr 计算字符串的长度
我想使用 Haskell 高阶函数 Foldr 来计算字符串的长度
它给出以下错误。这段代码有什么问题?
haskell - 如果 map 或 filter 在另一个函数中使用,该函数会变得更高阶吗?
如果我在另一个函数中使用 map 或 filter,该函数会成为高阶函数吗?例如:
是removeSpaces
高阶函数吗?
haskell - 在 Haskell 中提升高阶函数
我正在尝试构建一个类型的函数:
t
单子变压器在哪里。具体来说,我有兴趣这样做:
我摆弄了一些 Haskell 魔法库,但无济于事。我怎样才能做到正确,或者在我没有找到的地方有现成的解决方案?