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 くらいは書けるのではないだろうか
  • たぶん同じことをJavaC#でやれなくはないだろう

といったところです。 テスト書いてないとかお前それ @t_wada の前でも同じこと言えんの? と言われかねないですが…。

Scalaz の機能の多さを改めて知る良い機会でした。

まとめ

つらい楽しい!