Elm の automaton を F# に移植した

おはようございます、ライブラリ移植するマンです。

つい先日、関数型ストリーム処理勉強会 - connpassという勉強会がありましたねというタイミングで、ElmのFRPライブラリが情報網にひっかかったので移植しました。

https://github.com/evancz/automaton

automaton is 何

ここでは "Arrowized FRP の実装の一つ"、という一言で終わらせてしまいます。 詳しくはリンク先のコード見たり論文読みましょう。

移植コード

https://github.com/pocketberserker/FSharp.Automaton

もう少し名前ひねるべき、という話もありますがまーそこはリスペクトということで。

雑多な話

  • なんで Elm のライブラリ?
    • higher kinded types をサポートしていないので移植しやすい
    • Arrow を明示しているわけではないので移植しやすい
    • Elm の Signal を .NET の System.IObservable で読み替えれば移植が楽そうだった
  • 別に移植しなくても System.IObservable とか Rx でいいじゃない
    • 趣味の問題
  • テストは?
    • あとでかく(ダメじゃん)
  • サンプルコードは?
    • あとでかく