1
私はIOモナドで実験だし、これは私が書いたものである:何も
val io: IO[String] = "asdfasdf".pure[IO]
val i: IO[Unit] = for{
str <- io
} yield {
println(str).pure[IO]
}
i.unsafePerformIO() // Performing io ops
コードが出力を生成しません。次のコードは、正常に動作します。
val io: IO[Unit] = "asdfasdf".pure[IO].flatMap(println(_).pure[IO])
io.unsafePerformIO() //prints asdfasdf
なぜですか?違いはなんですか?あなただけのScalaの持つ巨大な迷惑を打ってきました