2012-09-17 44 views
1

爲什麼6?我想定義序列(5,6,...)。如何正確使用「val」而不是「def」?定義簡單流時奇怪的斯卡拉行爲

scala> val f: Stream[Int] = 5 #:: f map { _ + 1 } 
f: Stream[Int] = Stream(6, ?) 

我使用Scala的2.9.2

回答

4

你需要一些括號來告訴它應用到mapf,而不是5:

scala> val f: Stream[Int] = 5 #:: (f map { _ + 1 }) 
f: Stream[Int] = Stream(5, ?) 

scala> f.take(5).toList 
res2: List[Int] = List(5, 6, 7, 8, 9) 
+1

非常感謝。我必須失明;-) – kopper