好吧,我得到這個所有的遞歸更實用,因爲你沒有改變迭代中任何對象的狀態。但是沒有什麼能阻止你在scala中做到這一點。斯卡拉遞歸沒有副作用
var magoo = 7;
def mergeSort(xs: List[Int]): List[Int] = {
...
magoo = magoo + 1
mergeSort(xs1, xs2);
}
事實上,你可以遞歸就像在斯卡拉側effectless,你可以在Java中。 因此,說Scala只是簡化使用模式匹配來編寫簡潔的遞歸是否公平呢?就像沒有什麼能阻止我用Java編寫任何無狀態的遞歸代碼,我可以在Scala中編寫代碼?
這點真的是在斯卡拉複雜的遞歸可以用整潔的代碼來實現。 就是這樣。 是否正確?