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