好的,我明白了。递归更具有函数式特点,因为在迭代过程中不会改变任何对象的状态。但是,在Scala中也可以做到这一点。
var magoo = 7;
def mergeSort(xs: List[Int]): List[Int] = {
...
magoo = magoo + 1
mergeSort(xs1, xs2);
}
事实上,在Scala中,您可以像在Java中一样使递归成为无副作用的。因此,可以说Scala通过使用模式匹配使编写简洁的递归更容易吗?就像没有任何阻止我在Java中编写任何无状态递归代码,我可以在Scala中编写。
关键点是,在Scala中,可以使用更整洁的代码实现复杂的递归。就是这样。正确吗?