タグ

FreeMonadに関するyuroyoroのブックマーク (2)

  • Extensible Effects in Scala

    Extensible Effects in Scala Freer Monads, More Extensible Effects で紹介される Eff モナドを Scala を使って解説します。 Contents Free Monad Freer Monad Efficient Freer Eff Monad (Extensible Freer) Free Monad Free はパラメータに Functor のインスタンスを与えることでモナドになるデータ型です。 Functor の定義から見ていきましょう。 trait Functor[F[_]] { def map[A, B](fa: F[A])(f: A => B): F[B] } 計算コンテナ F に対して map という関数が定義されます。 map は F[A] の計算値 A に関数 A => B を適用し F[B] を得ます。

  • 型引数の基本から学ぶ、FreeモナドとCoyoneda - AweKuit日記

    このエントリはScalaアドベントカレンダーの3日目です。昨日は Kuchitama さんのScalaがつないでくれた縁-NetflixMeetup Kyoto 開催後記- でした。 前おき この記事は、タイトル通りFreeモナドとCoyonedaを扱うものの、あまりそれらの直接的な話やモナモナした話ではなく、そこに至るまでの実装のあれこれを『Scalaのプログラミングとして』手探りで追ってみよう、というものです。 その過程で、特に型引数(型変数)や高階型や、それらが継承時にどう扱えるかというあたりのScalaの基にたっぷり触れます。 なので、Freeモナドに興味がない方でも 型引数で A とか F[_] とか出てくると、まだちょっとこわい Scalaでいざプログラミングすると型が合わずつまづく事が多い という方にも、役に立つ部分があると思うので参考にぜひ読んでみてもらいたいです。 もち

    型引数の基本から学ぶ、FreeモナドとCoyoneda - AweKuit日記
  • 1