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 + -
显示快捷键?