Я новичок в Scala, и я все еще пытаюсь понять, какие подходы эффективны и которые могут содержать скрытые эксплуатационные расходы.
Если я определяю (не хвост) рекурсивную функцию, которая содержит внутреннюю функцию. Созданы ли копии экземпляра функционального объекта внутренней функции для каждого рекурсивного вызова?
Например, в следующем:
def sumDoubles(n: Int): Int = {
def dbl(a: Int) = 2 * a;
if(n > 0)
dbl(n) + sumDoubles(n - 1)
else
0
}
... сколько копий объекта dbl
существует в стеке для вызова sumDoubles(15)
?