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コンパイラライブラリが標準でついているらしい.