私は fs2 キューの背後にある直感を把握しようとしている初心者です。からデータをプルするための基本的な例を実行しようとしていますStream[IO, Int]
。しかし、私にとってのドキュメントは、高度なものに直接飛び込むので十分ではありません。
ここで私がこれまでに行ったこと:
import cats.effect.{ ExitCode, IO, IOApp}
import fs2._
import fs2.concurrent.Queue
class QueueInt(q: Queue[IO, Int]) {
def startPushingtoQueue: Stream[IO, Unit] = {
Stream(1, 2, 3).covary[IO].through(q.enqueue)
q.dequeue.evalMap(n => IO.delay(println(s"Pulling element $n from Queue")))
}
}
object testingQueues extends IOApp {
override def run(args: List[String]): IO[ExitCode] = {
val stream = for {
q <- Queue.bounded(10)
b = new QueueInt(q)
_ <- b.startPushingtoQueue.drain
} yield ()
}
}
質問 1:No implicit argument of type Concurrent[F_],
並行効果を使用していないことを知っているのですが、何が欠けているのかわかりませんか?
質問 2: 結果を印刷するにはどうすればよいですか。
質問 3: fs2 を学習するためのリソースを教えてもらえますか