アカウント名:
パスワード:
といった問題点があります。
確かに今までもクロージャー的なことはできたのですが、今回の提案はクロージャーという仕組みそのものよりも、関数型や構文が大きいと思います。
言語設計としては、従来の名前ベースの型付け(同じ内容でも名前が違えば違う型)に、内容ベースの型(内容が同じならば同じ型)を入れるというのは結構大きな変更だと思います(技術的な話ではなく、設計思想として)。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
犯人はmoriwaka -- Anonymous Coward
Callbackインタフェース用意するだけじゃダメ? (スコア:3, 参考になる)
Object execute(Object[] data);
}
みたいなjava.lang.Callbackインタフェース用意してくれるだけで、クロージャの代わりになると思うんだけど。
final Target target = ...
obj.doSomething(new Callback() {
Object execute(Object[] data) { return target.doThis(); }
});
みたいな感じでクロージャ。
Re:Callbackインタフェース用意するだけじゃダメ? (スコア:3, すばらしい洞察)
といった問題点があります。
確かに今までもクロージャー的なことはできたのですが、今回の提案はクロージャーという仕組みそのものよりも、関数型や構文が大きいと思います。
言語設計としては、従来の名前ベースの型付け(同じ内容でも名前が違えば違う型)に、内容ベースの型(内容が同じならば同じ型)を入れるというのは結構大きな変更だと思います(技術的な話ではなく、設計思想として)。
Re:Callbackインタフェース用意するだけじゃダメ? (スコア:0)
interface Closure<R, A>{
R execute(A arg);
}
みたいな感じである程度マシになりますが、やはり記述がどうにも面倒でやめました。
Apache Commonsに近い事をしてくれるのがあるのに気がついてAC。