I am new to Scala and started to learn about tail recursion. I learned that tail recursion in functional programming is a counter part of iterations (for loops) in imperative programming:
Simple C++ loop to sum list elements:
uint32_t sum = 0;
for (size_t i = 0; i < list.length(); ++i) {
sum += list[i];
}
Scala recursive equivalent:
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)
}
Question: What would be a scala recursive equivalent of nested for loops ?
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];
}
}