|
Scala example source code file (concurrent-stream.scala)
The Scala concurrent-stream.scala source code
// test concurrent calls to Stream.tail
object Test {
def slowRange(from: Int, until: Int, cons: (Int, => Stream[Int]) => Stream[Int]): Stream[Int] = {
var current = from
def next: Stream[Int] = {
Thread.sleep(100)
if (current >= until) Stream.empty
else {
val stream = cons(current, next)
current += 1
stream
}
}
next
}
def testCons(cons: (Int, => Stream[Int]) => Stream[Int]): Unit = {
import scala.actors.Actor._
val stream = slowRange(0, 10, cons)
val main = self
actor { main ! stream.toList }
actor { main ! stream.toList }
val eval0 = receive { case list: List[Int] => list }
val eval1 = receive { case list: List[Int] => list }
println("Evaluation 0: " + eval0)
println("Evaluation 1: " + eval1)
}
def main(args: Array[String]) {
println("Testing standard cons.")
testCons(Stream.cons.apply(_, _))
}
}
Other Scala examples (source code examples)Here is a short list of links related to this Scala concurrent-stream.scala source code file: |
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.