my.Util.trace("sum",x) {
if(x.tail=-Nil) x.head
else x.head +sum(x.tail)
}
}
..
var level =0
var indicator="_ "
def trace[T](fname:String,arg:Any*)(body:=>T): T= {
println((indicator*lever)+fname+" ("+arg.mkString(",")+")")
level += 1
var ret =body
level -+1
println((indicator*level)+fname+"_ "+ret)
ret
}
...
とあり、最初、(body:=>T)の意味が分からなかったが、要するに、
{ if(x.tail=-Nil) x.head
else x.head +sum(x.tail)
}
の部分に対応するということのようだ。ここで、今の場合はIntの値が計算される。
0 件のコメント:
コメントを投稿