- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
Alg Root;
arg x, y;
Root = getRoot(x, y, 1);
end;
Sub getRoot;
arg x, y, r;
if Power(r, x) < y then
getRoot = getRoot(x, y, r + 1);
else
if Power(r, x) = y then
getRoot = r;
else
getRoot = r - 1;
end;
end;
end;
Sub Power;
arg x, y;
if 0 < y then
Power = x * Power(x, y - 1);
else
Power = 1;
end;
end;
Написал напитоне простой интерпретатор функционального языка из учебника по теоретическим основам информатики, давайте обсудим
https://hastebin.com/ocadegapuv.py
сам учебник, в котором описывается язык и семантика (глава про функциональные программы)
http://www.ict.edu.ru/ft/003627/lect1.pdf
В оп-коде пример программы, которую ему можно скормить
(вычисляет целую часть корня степени x из числа y).
Подскажите, для начала, как распознать и развернуть в цикл хвостовую рекурсию.
И если кто напитоне работает, этот код вообще котируется, или есть явное палево?