0
我正在做一個類的賦值,我的函數應該返回一個斐波那契序列直到給定的位置。我試圖在第三種情況下減少我的代碼。scala在同一個實例上運行2個方法
object FibonacciSeries{
def fibrec(pos: Int, list: List[Int] = List()):List[Int] = pos match {
case 0 => List(0)
case 1 => List(0,1)
case _ => {
var seq= fibrec(pos - 1 , list)
seq :+ seq.takeRight(2).sum
}
}
}
我想這樣做只能調用一次遞歸函數,也適合一行。我希望能做類似的事情。
fibrec(pos -1, list).takeRight(2).sum.append
但我知道不會這樣做。任何幫助表示讚賞
您可以考慮爲您的任務使用'Stream'。斐波那契數列是scala流的慣用應用:http://stackoverflow.com/questions/8659127/how-to-fix-my-fibonacci-stream-in-scala – Aivean