我是新来的斯卡拉并开始了解尾递归。 我了解到,在函数编程尾递归是迭代的在命令性编程的计数器部分(循环):斯卡拉二维尾递推
简单的C++环总结列表元素:
uint32_t sum = 0;
for (size_t i = 0; i < list.length(); ++i) {
sum += list[i];
}
Scala的递归当量:
def listSum(list: List[Int]): Int = {
def listSumHelper(list: List[Int], sum: Int): Int = {
if (list.isEmpty) sum
else listSumHelper(list.tail, sum + list.head)
}
listSumHelper(list, 0)
}
问: 什t将会是嵌套for循环的scala递归等价物吗?
uint32_t sum = 0;
for (size_t i = 0; i < list.width(); ++i) {
for (size_t j = j < list.height(); ++j) {
sum += list[i][j];
}
}
相同,除了嵌套。就像C++版本一样。 –