Subject: Re: Refal interpreter
From: A.A.Vladimirov (vladimi@mech.math.msu.su)
Date: Mon Jan 24 2005 - 14:08:37 MSK
В Сбт, 22/01/2005 в 21:28 +0200, Leonid Belous пишет:
> Здравствуйте, Антон!
>
> Правильно ли я понял, что встроенные арифметические функции в Вашей реализации
> (add,sub,mul,div,div,mod)пока не расчитаны на произвольноразрядную целую арифметику?
Неправильно поняли. Расчитаны ;)
>
> Если я неправ насчет нереализованности произвольноразрядной целой арифметики, то
> был бы благодарен за правильно написанный для Вашей реализации пример программы
> рекурсивного вычисления факториала, на котором интересно было бы оценить эффективность
> Вашей чистой интерпретации.
>
Приложено.
С уважением,
Антон Владимиров
#!/usr/bin/refal
$use 'stdio'
$use 'arithm'
$start k/puts/k/symb/k/faktorial/ k/numb/k/gets/.... 10.
symb s/1/ = k/symb/ () s/1/.
(e/1/) 0 = e/1/
(e/1/) s/2/ = k/symb/ (k/add/k/mod/ s/2/ 10. 48. e/1/) k/div/ s/2/ 10..
() 0 = 48
numb (s/1/) s/2/ e/3/ = k/numb/ (k/add/ k/mul/ 10 s/1/. k/sub/ s/2/ 48..) e/3/.
(s/1/) = s/1/
e/1/ = k/numb/ (0) e/1/.
faktorial s/1/ = k/faktorial/1 s/1/.
s/1/ 0 = s/1/
s/1/ s/2/ = k/faktorial/ k/mul/s/1/ s/2/. k/sub/ s/2/ 1..
This archive was generated by hypermail 2b25 : Mon Jan 24 2005 - 14:09:27 MSK