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

php - 从 PHP 中的类成员调用函数

说我有以下内容:

上面抛出以下错误:

致命错误:调用未定义的方法 C::f()

我猜这是因为我试图$this->f使用与调用对象的成员函数相同的语法来调用回调函数。

那么,允许您调用存储在成员变量中的函数的语法是什么?

0 投票
3 回答
8773 浏览

c# - C#版本的Java Runnable?(代表?)

我在 SO 中找不到这个问题的直接答案。是否有带void (void)签名的预定义委托?

0 投票
4 回答
160 浏览

python - 使用面向对象的方法将函数作为参数传递的等价物是什么

我在 python 中有一个程序,其中包含一个将函数作为__init__方法参数的类。此函数存储为属性,并在类中的各个位置使用。传入的函数可以是多种多样的,传入一个键然后从一组预定义的函数中进行选择不会提供相同程度的灵活性。

现在,如果像这样的一长串问题不酷,我们深表歉意,但是......

  • 他们是在函数不是一流对象的语言中实现这一目标的标准方法吗?
  • 在这方面,块(如 smalltalk 或 Objective-C 中的块)是否算作函数?
  • 在这些语言中,块会是最好的方法吗?
  • 如果没有块怎么办?
  • 你能在运行时添加一个新方法吗?
  • 这在哪些语言中是可能的(并且容易)?
  • 或者使用执行所需操作的单个方法创建一个对象会更好吗?
  • 如果我想传递很多函数,我会创建很多单例对象吗?
  • 这会被认为是一种更面向对象的方法吗?
  • 有人会考虑在 python 中这样做吗,其中函数是一流的对象?
0 投票
2 回答
310 浏览

lua - 脱糖 Lua 运算符

由于 Lua 支持一流的函数,我想知道您是否可以像在许多函数式语言中那样对运算符进行脱糖。例如,在 OCaml 中,您可以执行以下操作:

x上面的代码使用 value初始化变量3 + 5。写作(+)相当于有一个本地函数,它接受两个参数并返回它们的总和。(+) 3 5正在使用两个参数3和调用此函数5。这背后的动机是您可以将运算符直接传递给函数,而不必在之前将其包装在函数中:

谢谢!

0 投票
4 回答
57 浏览

javascript - 如何分配给函数的成员?

由于函数是第一类对象,因此应该可以分配给它们的成员。

我认为这样arguments.callee做是对的吗?

还有其他方法可以设置这些字段吗?

在第一种情况下如何设置field

更新 1

我的意思是当它运行时如何从函数内部访问成员。

0 投票
1 回答
141 浏览

scala - 构造函数中带有可变参数的函数

我试图让它在 Scala 中工作:

上面的代码不会编译(为什么?),但下面的代码:

没关系,但两者是等价的吗?如果是这样,那么我该如何使用funcinside MyClass

0 投票
1 回答
3218 浏览

exception - 在 Clojure 中使用“应用”函数时出错:“不知道如何从:java.lang.Long 创建 ISeq”

在“Clojure in Action”(第 63 页)中处理以下示例:

评估 REPL:

导致引发以下异常:

在评估应用程序之后似乎正在引发异常。

0 投票
4 回答
551 浏览

javascript - 如果 JS 中的函数是一等的,那么是什么允许它们在定义之前被调用?

头等函数不是意味着它们表现为变量吗?显然,它们的行为与变量并不完全相同,因为:

...不起作用,而这个:

...做。

也就是说,这个:

不起作用,这是更一致的。

是什么赋予了?

0 投票
2 回答
285 浏览

unit-testing - Lua:如何验证表是否包含特定功能

我正在开发一个模块,该模块根据传入的参数返回一个充满函数的表。具体来说,该模块返回一组数据转换规则(函数),这些规则需要应用于数据集,具体取决于哪个客户是发送它。

我决定将我的规则库(biz 逻辑)与决定应用哪些规则的代码(配置逻辑)分离。

这是我正在编写的单元测试,以验证 ruleBuilder 是否根据我的一个场景添加了正确的规则(函数):

这是进行验证的正确方法吗?即使ruleLibrary.missingSSNRule函数通过闭包或参数引用了其他几个函数,这也会起作用吗?

0 投票
2 回答
64 浏览

javascript - 在 Javascript 中优化和实现冗长的函数数组

我目前正在用 Javascript 实现一个模拟器,模拟平台的内存模型相当复杂,所以我通过一组函数进行读写,例如:

因为显然 Read 和 Write 函数会被非常频繁地调用(每条指令至少一次,主要执行是Operators[Read(ProgramCounter)]())它们对性能非常敏感。

有没有可以做的性能优化?这是最好的方法吗?