来世から頑張る!!

技術ブログを目指して

Free

Free Monadについて

新規性の無い話というものはなかなか話す場所も無いもので、 どこにも話す機会が見つからなかったのでブログに書いて放置しようかと。 Free MonadのApplicative合成 Free MonadはMonadです。 なのでApplicative合成ができます。 Applicative合成ができても直…

FreeのRunnerを抽象化する

モチベーション 差し替え時の変更忘れなどを防ぐために、Runner部分を抽象化してConstructor Injectionしたい。 Free ここは今回重要ではないので、Functorの要らない単純な実装を用意。 sealed trait Free[F[_], A] { def map[B](f: A => B): Free[F, B] = …