2015-09-10 64 views
-2

根據wikipedia Corecursion - 綜合工作,從基礎案例開始並構建起來,迭代地生成進一步從基礎案例中刪除的數據。Corecursion瞭解

功能組合器是否做共同遞歸? 像

list.map(...).filter(..) 

使用Scala任何corecursion的例子嗎?

BR!

+0

這似乎是你昨天問的問題 –

+5

[Corecursion VS斯卡拉遞歸理解(可能重複http://stackoverflow.com/questions/32479852/corecursion-vs-recursion-understanding的副本-in-斯卡拉) –

回答

1

維基百科頁面列出了階乘因子和斐波那契數列作爲corecursion的例子,兩者都可以實現爲無限的Stream()

// factorial 
val facs: Stream[Int] = 1 #:: facs.zipWithIndex.map(x=>x._1 * (x._2+1)) 

// fibonacci 
val fibs: Stream[Int] = 0 #:: fibs.scan(1)(_+_)