キーボードショートカット一覧 j次のブックマーク k前のブックマーク lあとで読む eコメント一覧を開く oページを開く ✕
キーボードショートカット一覧 j次のブックマーク k前のブックマーク lあとで読む eコメント一覧を開く oページを開く ✕
このエントリはScalaアドベントカレンダーの3日目です。昨日は Kuchitama さんのScalaがつないでくれた縁-NetflixMeetup Kyoto 開催後記- でした。 前おき この記事は、タイトル通りFreeモナドとCoyonedaを扱うものの、あまりそれらの直接的な話やモナモナした話ではなく、そこに至るまでの実装のあれこれを『Scalaのプログラミングとして』手探りで追ってみよう、というものです。 その過程で、特に型引数(型変数)や高階型や、それらが継承時にどう扱えるかというあたりのScalaの基本にたっぷり触れます。 なので、Freeモナドに興味がない方でも 型引数で A とか F[_] とか出てくると、まだちょっとこわい Scalaでいざプログラミングすると型が合わずつまづく事が多い という方にも、役に立つ部分があると思うので参考にぜひ読んでみてもらいたいです。 もち
ScalaのflatMapメソッドは、モナドのbindに対応するメソッドとして認識されています。つまり、基本的にはScalazの>>=メソッドと同じ動作をするわけですが、微妙な機能差があります。 以下はListに対してflatMapメソッドを用いてモナドのbind処理を行ったものです。 scala> List(1, 2, 3).flatMap(x => if (x % 2 == 0) List(x, x) else Nil) res16: List[Int] = List(2, 2)これはScalazの>>=メソッドも全く同じ動作をします。 scala> List(1, 2, 3) >>= (x => if (x % 2 == 0) List(x, x) else Nil) res17: List[Int] = List(2, 2) 次の例さて、今度の例はListのコンテナに対してOpti
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く