8 object Mat { 9 def main(args: Array[String]): Unit = { 0 implicit val system = ActorSystem() 1 implicit val mat = ActorMaterializer() 2 implicit val ctx = system.dispatcher 3 4 val src: Source[Int, NotUsed] = Source(1 to 20) 5 val primeFilterFlow: Flow[Int, Int, NotUsed] = Flow[Int].filter { 6 case i if i <= 1 => false 7 case i if i == 2 => true 8 case i => !(2 until i).exists(x => i % x == 0) 9 } 0 val collectIntSink: Sink[Int, Future[Set[Int]]] = 1 Sink.fold(Set[Int]()){ case (a, b) => a + b } 2 3 val runnableGraph: RunnableGraph[Future[Set[Int]]] = 4 (src via primeFilterFlow toMat collectIntSink)(Keep.right) 5 6 val future: Future[Set[Int]] = runnableGraph.run() 7 future.onComplete { x => 8 println(x) 9 system.terminate() 0 } 1 } 2 } ˡૉ͚ͩ௨͢ϑΟϧλ ˡདྷͨΛूܭͯ͠ 4FU ʹ٧ΊΔ ˡूܭΛड͚औΔͨΊ .BU ༻ ˡ ͷྻ FYBNQMFTTSDNBJOTDBMB.BUTDBMB