わかりました、繰り返しでオブジェクトの状態を変更していないため、すべての再帰がより機能的であることがわかりました。ただし、scala でこれを行うのを止めるものは何もありません。
var magoo = 7;
def mergeSort(xs: List[Int]): List[Int] = {
...
magoo = magoo + 1
mergeSort(xs1, xs2);
}
実際、Java でできるのと同じように、Scala でも再帰を副作用なしにすることができます。では、パターン マッチングを使用することで、Scala は簡潔な再帰を簡単に記述できるようになっているだけだと言えますか? Scala で記述できるステートレスな再帰コードを Java で記述することを妨げるものは何もないように?
要点は、Scala では複雑な再帰をより適切なコードで実現できるということです。それで全部です。正しい?