タグ

ブックマーク / modegramming.blogspot.com (1)

  • Scala Tips / flatMapとbind(>>=)の違い

    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

  • 1