Рекурсия останавливается, когда x
меньше 1
, потому что результат выражения равен 1
if x < 1 then 1
В C # функция будет выглядеть следующим образом:
public int fact(int x)
{
if (x < 1)
return 1;
else
return x * fact(x - 1);
}
Чистое функциональное программирование интересно, потому что возврата никогда не бывает, все, что делает программа, это оценивает. Вы должны спросить себя: «Что оценивает это выражение?»