message.scala-2.scala
来自「JAVA 语言的函数式编程扩展」· SCALA 代码 · 共 34 行
SCALA
34 行
/* The Computer Language Shootout http://shootout.alioth.debian.org/ contributed by Philipp Haller*/import scala.actors._; import scala.actors.Actor._object message { def main(args: Array[String]) = { val n = Integer.parseInt(args(0)); val nActors = 50; val finalSum = n * nActors Scheduler.impl = new SingleThreadedScheduler def beh(next: Actor, sum: int): unit = react { case value: int => val j = value + 1; val nsum = sum + j if (next == null && nsum >= finalSum) { Console.println(nsum) System.exit(0) } else { if (next != null) next ! j beh(next, nsum) } } def actorChain(i: Int, a: Actor): Actor = if (i > 0) actorChain(i-1, actor(beh(a, 0))) else a val firstActor = actorChain(nActors, null) var i = n; while (i > 0) { firstActor ! 0; i = i-1 } }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?