Dependency Injection in F#
F# で Dependency Injectionをする場合に有用な、ReaderモナドとFreeモナドの話題について扱っています。さまざまなサンプルプログラムを通して、ちいさな学びを得ながら、F#でReaderモナドとFreeモナドをちょっと扱えるようになる。そんな本です。 未定ではありますが、なにか知見が溜まったら記事を追加するかもしれません。
Chapters
はじめに
Dependency InjectionにReaderモナドを利用する
Readerモナドで依存性(環境)を注入してテストする
モナド変換子とは
モナドの計算に依存性(環境)を注入したい。ReaderTを利用する
Dependency Injectionを行う場合にReaderTを使うメリットとデメリット
ReaderTの依存性(環境)を変更したReaderTを得る
入れ子のモナド変換子
グローバルな変数(環境)をReaderモナドへリファクタリング
ReaderモナドでDependency Injectionまとめ
FunctorとFreeモナド
Freeモナドパターン。純粋なコードと副作用を分離する
FSharpPlusのFreeモナドを利用と、Readerモナドのインタプリタ
FSharpPlusのFreeモナドの実装を読み解く
既存のモナドをFreeモナドで(Option)
既存のモナドをFreeモナドで(Reader)
既存のモナドをFreeモナドで(Writer)
ReaderとWriterの特徴を併せ持つモナドをFreeモナドで
逆ポーランド記法のDSLをFreeモナドで
再帰的な構造を伴うFreeモナドのDSL
FreeモナドなDSL(AST)にパースする
FreeモナドなDSLでCustomOperationを利用する
Coproductとは
CoproductとFreeモナドでDSLを合成する
FreeモナドとDependency Injectionまとめ
さいごに
Free.foldを利用する
FSharpPlus(ver1.2系) - CEsのジェネリックなBuilder
Community
Author
Topics
- 公開
- 本文更新
- 文章量
- 約155,171字
- 価格
- 600円