问题标签 [first-class-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 投票
2 回答
231 浏览

haskell - Haskell - 投影函数的快速命名

假设我想f根据其他一些预定义函数定义一个函数g,如下所示:

也就是说,我想将投影定义为f(2,_) : Int->Intg(_) : Int->Int. 令人高兴的是,Haskell 具有一流的功能,因此如下定义squarePlusOne是有效且标准的:

使用 Haskell 的柯里化(即f只接受一个Int作为输入并返回一个(Int->Int)类型化的函数),我很惊讶我不能写

为什么不?还是有其他语法?

0 投票
1 回答
85 浏览

javascript - 这两个功能如何等效?

我正在阅读一本书,主要是足够的指南,在关于 First Class 函数的章节中,我遇到了这个例子。有人可以向我解释吗?

它说下面的两行是相等的。

这是两者相等的原因:

但我无法理解这部分。这两个如何等效?

有人可以用外行的方式解释吗?

0 投票
1 回答
46 浏览

ruby - Ruby 传递方法

试图理解 ruby​​ 的复杂性,但到目前为止没有任何意义。

给出错误,这没有多大意义。我有某种语法错误还是不能在 ruby​​ 中做?

我正在尝试做类似的事情

同时,这些确实有效:

0 投票
4 回答
70 浏览

javascript - JS :: First Class Functions :: 参数值混淆

我不明白第一类函数的参数“数字”如何具有它的值。

这几天我一直在考虑这个问题,但我的想法没有任何进展。没有错误代码,因为这是完全有效的 JS。

此示例代码来自 Eloquent JS 一书(http://eloquentjavascript.net/2nd_edition/05_higher_order.html#c_chCFkdNvRH第 2 版)。

我不明白为什么“数字”不被认为是未定义的。参数不应该是引用实际数组的“numbers[i]”或“numbers”吗?

0 投票
0 回答
78 浏览

f# - 我可以重写此代码以避免 F# 错误吗

我在 F# 中有以下代码

https://repl.it/repls/CarefulGiganticExtraction的实时版本

这是对一些真实代码的简化模拟,我正在尝试使用 FuncUI 进行原型制作,这是Avalonia的 Elmish 方言。

问题是当我尝试创建 Binder.oneWay 的部分应用程序时出现编译错误

错误FS0425:一等函数的类型不能包含byrefs

是否可以在视图函数的顶部创建 Binder.oneWay 函数的部分应用程序,或者我是否将自己编码到角落?

现场版再次在

https://repl.it/repls/CarefulGiganticExtraction

0 投票
1 回答
140 浏览

function - Type mismatch on basic "apply twice" hello world in Haskell

The minimal code:

The errors generated:

How would I logically fix this issue myself? Clearly it's something I'm doing wrong. Am I missing a preamble that every example should have?

0 投票
3 回答
564 浏览

python - 试图做数学,int 对象是不可调用的

我正在尝试将一个数字传递给一个函数并让它打印结果,我有一个方程def square()的函数,以及一个接收数字和函数的函数

我不断收到此错误:

“TypeError:'int' 对象不可调用”

我是编程新手,正在 YouTube 上观看 corey shaffer,他编写了一个与此类似的程序。我开始玩它,现在我被卡住了。

我希望打印出打印语句,arg_list(i)并让我通过def square(x)并将该答案存储在结果中

0 投票
4 回答
480 浏览

javascript - 如何在javascript中实现柯里化?

问题如下:

这是一个关于 JS 柯里化的问题。我已经实现了这个问题的大部分功能。棘手的一点是 .result 对我来说。

sum(1,2) 之后的 .result 是什么意思?是属性吗?

如何将 .result 添加到我的代码中?

0 投票
2 回答
850 浏览

php - PHP支持一流的函数,是什么意思

这句话是什么意思php

PHP 支持一流的函数

谁能简要解释一下,我在阅读文档时似乎不明白。

我会很感激一个例子。

0 投票
1 回答
33 浏览

swift - Swift:调用枚举值转换器函数作为第一类函数

使用上面的枚举,获取行星名称数组的一种方法是调用

但 Swift 支持一等函数,将函数视为“一等公民”,这允许我们像调用任何其他对象或值一样调用函数。

所以通过这个得到一个名字数组会很好

但是,编译器似乎需要更多上下文。它无法map在编译时推断类型,所以我做了

编译器停止抱怨,但我没有得到一个字符串数组。上面的行返回一个类型的值[(SolarSystemPlanet) -> String]

如果我将以上内容打印出来,而不是得到

我有

如果我强制返回类型是[String]这样的

Xcode 会抱怨[(SolarSystemPlanet) -> String]无法转换为[String]

毕竟有可能实现我想要做的事情吗?我错过了什么或做错了什么?

如果不可能,我也非常感谢一些关于原因的解释。

感谢您花时间阅读我的问题!


编辑感谢@sweeper的回答。

对于那些感兴趣的人,我进一步确保每个 String 枚举都有toRawValue

注意:这是 Swift 5.1.3