Free

Freeモナドです。バージョン7.1以前と7.2以降で、ある程度構造が異なっています。 7.2以降は、いわゆる

Operational Monad

と呼ばれる形式になっており、大抵のメソッドでFunctorの制約が必要なくなっています。

Haskellと異なり、Haskellのものを単純に真似て実装するとstack overflowしてしまうので、一工夫されています。 それについての詳細は、@runaroramaさんが書いた

Stackless Scala With Free Monads

を読むといいでしょう。

@runaroramaさんは、FP in Scalaの著者であり、Scalazの主要コミッターの一人です。

results matching ""

    No results matching ""