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)