F# でFree MonadとOperational Monad
というわけで、とりあえず @xuwei_k さんの Free Monad in Java を F# 移植してみた。F# っぽくするのはTODO…。 github.com/pocketberserke…
2014-06-10 16:08:34@pocketberserker お、動きましたか? Javaに末尾再帰最適化ないので、ここ github.com/xuwei-k/free-m… があのままだとダメなんですが、F# って末尾再帰最適化されるんでしたっけ?
2014-06-10 16:11:33@pocketberserker あと、CharToy のサンプル github.com/pocketberserke… だけじゃなく、他にも色々サンプル書いてみたり、stackが溢れないテスト書いたほうがいい気がします(stack溢れないなら、実用になるかも?)
2014-06-10 16:13:03@xuwei_k とりあえず最低限は通ったというだけなので、まだスタック溢れないか試してないですね…。関数の末尾再帰最適化あるので、もしかしたら現時点で問題ないかもしれません。
2014-06-10 16:15:11@pocketberserker Javaでの高階型のテクニック、完全に理解しないままhighjのものパクった github.com/svn2github/hig… だけだし、少なからずキャストは発生する気がします。(キャストする箇所が少なくなって限られるだけ)
2014-06-10 16:17:47@pocketberserker F# でFreeが実用的に使えるかどうかはともかく、あれがポーティングできて最低限動くなら、 F# (や C# ) で、 Functor や Monad の型クラス表現できるかも?
2014-06-10 16:19:05なお、C# への移植は私のC# 力のなさ的に諦めました。interfaceの無名クラス実装(?)みたいなのどうすりゃいいんだー。
2014-06-10 16:31:01Java8で書いたFree Monad、stack消費しないようになった(フィボナッチ動いた) github.com/xuwei-k/free-m…
2014-06-11 13:00:59Java8でFree Monad書いたことにより、Javaでできるだけキャスト使わずに、型推論したり、existential type(存在型)っぽいことをする知見が少し身についたのでblog書きたいけど、最近なんだか疲れててblog書く気があまり起きない
2014-06-11 13:04:52xuwei_kさんがTrampolineを実装していたのでこちらも追随 github.com/pocketberserke…
2014-06-11 23:27:03タイトルミスってたのであげなおし "JavaでFree Monad"をF# に移植してみた - pocketberserkerの爆走 pocketberserker.hatenablog.com/entry/2014/06/…
2014-06-11 23:53:20書いた d.hatena.ne.jp/xuwei/20140613… "JavaでFreeモナドを表現するためのテクニックやexistential type(存在型)の話"
2014-06-12 10:44:48さっきのなかやんの問題( twitter.com/pocketberserke… )を抜本的な方法で解決してみた。 > gist.github.com/Gab-km/104660e… #最低の解決策
2014-06-12 11:00:58