Adaptive Functional Programming in Java
Excelは関数型言語 とか, Incremental Evaluation とかいう話に関連して,
今週読んだ論文:
Adaptive functional programming
(ACM Transactions on Programming Languages and Systems (TOPLAS))
関数型言語において,入力が変化したときに自動的に出力を(最低限の計算量で)再計算する仕組み.
に書いてあったAdaptive なライブラリをJavaで実装してみた.(java Mainで起動)
やっていることは リストm [2,3]
Source: (l0)> 2 (l1)> 3 (l2)> null ※ (l0) とか (l1) はリストノードで,番号はリストの要素とは無関係
から 2より大きいものをフィルタして res = [3] を得て,
1st Result: (l3)> 3 (l4)> null
そのあと,もとのリストm = [2,3] の 3 を消して,かわりに[4,7]を追加
すると,出力結果 res が [4,7]
2nd Result: (l3)> 4 (l7)> 7 (l8)> null
に変化する,というもの
論文内ではMLで実装していて,ソースまで書いてあるのになんでJavaなのか
- だってMLわからないんだもの
- この仕組みを使った Eclipse のプラグインを作りたいから (特にリアルタイムなコンパイルの実装に使う)