Subject: Re: Refal interpreter
From: A.A.Vladimirov (vladimi@mech.math.msu.su)
Date: Mon Jan 24 2005 - 16:53:20 MSK
> Если я неправ насчет нереализованности произвольноразрядной целой арифметики,
> то был бы благодарен за правильно написанный для Вашей реализации пример программы
> рекурсивного вычисления факториала, на котором интересно было бы оценить эффективность
> Вашей чистой интерпретации.
>
Поскольку предыдущий способ вычисления факториала не очень рекурсивный :
(, прилагаю исправленный вариант. Также прилагаю дистрибутив с
русифицированными комментариями (кодировка UTF-8).
С уважением,
Антон Владимиров
#!/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 0 = 1
s/1/ = k/mul/ s/1/ k/faktorial/ k/sub/s/1/ 1...
This archive was generated by hypermail 2b25 : Mon Jan 24 2005 - 16:53:58 MSK