Re: Refal interpreter


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