2
docsはf.call.apply(arguments)
を使用すると言いますが、それはオブジェクトメソッドでのみ機能し、機能ではないようです。DartでLISP(適用)を行うにはどうすればよいですか?
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で使用されているものなので、試してみる価値がありました。しかたがない。 –