docs говорят, что используют f.call.apply(arguments)
, но это похоже только на методы объектов, а не на функции.Как сделать LISP (применить) в Dart?
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);
^
Есть ли способ сделать LISP (apply f args)
без использования объектов?
В качестве альтернативы, есть способ динамически обернуть произвольную функцию в объекте, чтобы ее можно было использовать с помощью f.call.apply(arguments)
?
В качестве альтернативы, может Дарт карри?
Подобно тому, как догадка, делать какие-либо из этих работ? 1. 'say.apply (args)' 2. 'say (* args)' –
@ ChrisJester-Young Nope, спасибо. – mcandre
Огромный облом. Звездная нотация - это то, что используется в Python и Ruby, поэтому стоит попробовать. Ну что ж. –