ermine-parser(scala-trifecta?)の F# 移植を試みたが…
ermine-parser という、Haskell の trifecta を参考に実装されたパーサコンビネータライブラリが Scala には存在します。
ermine-language/ermine-parser · GitHub
今回はこれの F# 移植を試みました。
注意事項
- F# で推奨される実装、ガイドラインから逸脱した実装になっています
- この記事をみただけで"F# は残念な言語"という判断を下すのは誤りです
現時点
pocketberserker/fsharp-trifecta · GitHub
現状をまとめると、
- 型はあった
- がんばれば動くかもしれない
- 壊滅的な実行速度だろう
- 移植元にあるけど移植できていないコンビネータが5個くらい、モジュールが1個
- とはいえ Json Parser くらいは書けるのではないだろうか
- たぶん同じことをJavaやC#でやれなくはないだろう
といったところです。 テスト書いてないとかお前それ @t_wada の前でも同じこと言えんの? と言われかねないですが…。
Scalaz の機能の多さを改めて知る良い機会でした。
まとめ
つらい楽しい!