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なのか