JAVA 语言的函数式编程扩展

源代码在线查看: message.scala

软件大小: 21327 K
上传用户: horse2000
关键词: JAVA 语言 函数式 编程
下载地址: 免注册下载 普通下载 VIP

相关代码

				/* The Computer Language Shootout				   http://shootout.alioth.debian.org/				   contributed by Isaac Gouy				*/												import scala.concurrent._ 								object message {				   def main(args: Array[String]) = {				      val n = Integer.parseInt(args(0))				      val nActors = 500				      val finalSum = n * nActors								      case class Message(value: Int)								      class Incrementor(next: Pid) extends Actor {				         var sum = 0								         override def run() = {				            while (true) {				               receive { 				                  case Message(value) => 				                     val j = value + 1 				                     if (null != next){ 				                        next ! Message(j) 				                     } else { 				                        sum = sum + j				                        if (sum >= finalSum){ 				                           Console.println(sum); 				                           System.exit(0) // exit without cleaning up				                        }				                     } 				               }				            }				         }								         def pid() = { this.start; this.self }				      }								      def actorChain(i: Int, a: Pid): Pid = 				         if (i > 0) actorChain(i-1, new Incrementor(a).pid ) else a								      val firstActor = actorChain(nActors, null)				      var i = n; while (i > 0){ firstActor ! Message(0); i = i-1 }				   }				}							

相关资源