一个最最简单的,用continuations实现的List中的求和 - scala

来源:互联网 发布:php socket例子 编辑:程序博客网 时间:2024/06/06 01:16

1. 用scala2.8的@tailrec (检查是否可用tail recursion来优化)

2. 用continuations来实现一个求和.

3. 用于了解continuations的工作原理

 

package com.bellcard.continuations
import annotation._
object MyContinuations {
  def main(args : Array[String]) : Unit = {
      val l = List(1,2,3,4,5,6,7,8,9,10)
      @tailrec def add(l:List[Int], cont:Int=>Int):Int={
          l match {
              case Nil => cont(0)
              case x::xs =>add(xs, y=>cont(x+y))
          }
      }
      println(add(l,m=>m)) //print 55
  0}
}

 

 

 

 

 

 

原创粉丝点击