JavaFX と Incremental Evaluation
この前の遅延評価XMLパーサに似たもの
キーワード: Incremental Evaluation
この「Incremental Evaluation」を見つけたきっかけは,最近気になる「JavaFX」
bind とか使うとまさにExcelぽい評価ができるんだと.
マニュアルより
attribute X.b = bind a + 10;
attribute X.c = bind lazy b + 10;
var x = new X();
System.out.println(x.a); // 10 が出力
System.out.println(x.b); // 20 が出力
System.out.println(x.c); // 30 が出力
x.a = 5;
System.out.println(x.a); // 5 が出力
System.out.println(x.b); // 15 が出力
System.out.println(x.c); // 25 が出力
これに続き,こんなことが書いてある
JavaFX のオブジェクトはクラス名の後に中括弧で囲まれたアトリビュートのイニシャライザのリストを使用して、宣言的な構文を使ってアロケートできます。それぞれのイニシャライザはアトリビュート名、コロン、その値を定義する式という並びをしています (しかし、この点での JavaFX のインクリメンタルな評価のサポートについては!以下!を参照ください)。次に例を示します。
!以下!の部分をクリックしてもどこにも飛ばない...すごい気になる
あと,デモに入っていたjavafxpadも衝撃的.ソースを書き換えると勝手に画面に反映される....というか,Eclipseみたいにコード補完やらエラー指摘までするじゃんか!
...まさかIncremental Eval してんじゃ?
(ソース JavaFXPad.fx を見る限り,していないみたい.どうもJavaFxのコンパイラライブラリが標準でついているらしい.