2012-02-16 5 views
2

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)?

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

+0

Подобно тому, как догадка, делать какие-либо из этих работ? 1. 'say.apply (args)' 2. 'say (* args)' –

+0

@ ChrisJester-Young Nope, спасибо. – mcandre

+0

Огромный облом. Звездная нотация - это то, что используется в Python и Ruby, поэтому стоит попробовать. Ну что ж. –

ответ

3

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

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^