Skip to content

Instantly share code, notes, and snippets.

@underspecified
Created April 25, 2014 06:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save underspecified/11279251 to your computer and use it in GitHub Desktop.
Save underspecified/11279251 to your computer and use it in GitHub Desktop.
import scalaz.stream._
import scalaz.concurrent.Task
object ChunkTest {
def main(args: Array[String]): Unit = {
def expensive[T](x:T): T = {
println(s"EXPENSIVE! $x")
x
}
val range: Process[Task,Int] = Process.range(0,4)
val chunked: Process[Task,Vector[Int]] =
range.chunk(2)
println("range:")
println(range.runLog.run)
println("\nrange.map(expensive):")
println(range.map(expensive).runLog.run)
println("\nrange.zipWithIndex.map{(case (x,i) => (expensive(x),i)}:")
println(range.zipWithIndex.map { case (x,i) => (expensive(x),i) }.runLog.run)
println("\nrange.map(expensive).zipWithIndex:")
println(range.map(expensive).zipWithIndex.runLog.run)
println("\nchunked:")
println(chunked.runLog.run)
println("\nchunked.map(expensive):")
println(chunked.map(expensive).runLog.run)
println("\nchunked.map(expensive).zipWithIndex:")
println(chunked.map(expensive).zipWithIndex.runLog.run)
println("\nchunked.zipWithIndex.map{(case (x,i) => (expensive(x),i)}:")
println(chunked.zipWithIndex.map { case (x,i) => (expensive(x),i) }.runLog.run)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment