2

文档说使用,f.call.apply(arguments)但这似乎只适用于对象方法,而不是函数。

testapply.dart:

#!/usr/bin/env dart

say(a, b, c) {
    print("${a}!");
    print("${b}!");
    print("${c}!");
}

main() {
    var args = [1, 2, 3];
    say.call.apply(args);
}

痕迹:

$ dart testapply.dart 
'/Users/andrew/Desktop/testapply.dart': Error: line 11 pos 2: Unresolved identifier 'Function 'say': static.'
    say.call.apply(args);
 ^

有没有办法在(apply f args)不使用对象的情况下做 LISP?

或者,有没有办法在对象中动态包装任意函数,以便可以使用f.call.apply(arguments)

或者,达特咖喱可以吗?

4

1 回答 1

3

您所指的文档页面说,

此功能尚未实现,但已被指定为 Dart 编程语言规范 0.07 版的一部分。希望它会在适当的时候进入我们的实现,尽管可能需要一段时间。

这可能是也可能不是问题......

于 2012-02-16T17:26:46.973 回答