Как мне сделать LISP (применить) в дартс? - PullRequest
2 голосов
/ 16 февраля 2012

документы говорят, что используют 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)?

В качестве альтернативы, можно ли дартс карри?

1 Ответ

3 голосов
/ 16 февраля 2012

На странице документации, на которую вы ссылаетесь, написано:

Эта функция еще не реализована, но указана как часть версии 0.07 спецификации языка программирования Dart.Надеемся, что он найдет свой путь в наши реализации в должное время, хотя это может занять довольно много времени.

Это может или не может быть проблемой ...

...