документы говорят, что используют 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);
}
Trace:
$ dart testapply.dart
'/Users/andrew/Desktop/testapply.dart': Error: line 11 pos 2: Unresolved identifier 'Function 'say': static.'
say.call.apply(args);
^
Есть ли способ сделать LISP (apply f args)
без использования объектов?
В качестве альтернативы, есть ли способ динамически обернуть произвольную функцию в объект, чтобы он могнаноситься с использованием f.call.apply(arguments)
?
В качестве альтернативы, можно ли дартс карри?