iniyanp
3/10/2017 - 6:44 PM

channel usage

channel usage

package exercise
import scalaz._
import Scalaz._
import scalaz.concurrent.Task
import scalaz.stream.{Channel, channel}
import scalaz.stream.Process

/**
  * Created by paramin on 3/10/17.
  */
object exercise36 {

  def main(args: Array[String]): Unit = {


    val func:String => Task[Int] = s => Task.now(s.toInt)
    val func1:Int => Task[String] = s => Task.now((s+1).toString)

    val func2:Long => Task[String] = s => Task.now((s+1234567891).toString)


    val myProcess:Process[Task, Int] = Process.eval(Task.delay(12))
    val myChannel1: Channel[Task, Int, String] = channel.lift(func1)
    val p = myProcess through myChannel1
    println(p.runLast.run)


    val myProcess1:Process[Task, Long] = Process.eval(Task.now(123445L))
    val longChannel = myChannel1.contramap[Long](s => s.toInt)
    val q  = myProcess1 through longChannel
    println(q.runLast.run)


  }

}
//Output
Some(13)
Some(123446)