Я прохожу через Эликсир в книге действий, и я немного в тупике, как работает следующий пример.Подсчет натуральных чисел в эликсире
defmodule NaturalNums do
def print(1), do: IO.puts(1)
def print(n) do
print(n - 1)
IO.puts(n)
end
end
дает этот вывод:
iex(2)> NaturalNums.print(3)
1
2
3
Что я запутался о том, как этот модуль рассчитывает вверх от 1, а не вниз от 3. Если не 3 быть распечатаны первым, затем 2 и затем 1 ? 1 является последним, потому что он останавливает рекурсию.
Прогулка по потоку управления этого модуля будет полезно
спасибо за это. но как только базовый случай будет достигнут - как функция продолжит работу, а затем продолжит отсчет вверх? – metersk