]]> ]]>

Факториал в APLAN

Пример для версий APS APLAN

В первой строке объявляются имена процедур и систем переписывающих правил, которые будут определены в этой программе. Имя task объявлять не нужно, т.к. это имя самой программы (совпадает с именем файла).

Следующий блок — определение функции вычисления факториала как системы переписывающих правил; на это указывает ключевое слово rs в определении. Правила, применяющиеся к аргументу, перечислены в круглых скобках через запятую. В данном случае все правила простые, т.е. применяются к аргументам безусловно.

Затем следует процедура вывода факториалов на печать (ключевое слово proc). Ключевое слово loc задает список локальных переменных. После него в круглых скобках перечислены операторы процедуры через точку с запятой. Вместо конкатенации аргументов функции prn (вывод на печать) можно просто перечислить аргументы подряд.

При выполнении программы в онлайн-интерпретаторе вывод имеет заданный вид; при выполнении в интерпретаторе локально в выводе появляются лишние кавычки:

0 "! = " 1
1 "! = " 1

и т.д.

INCLUDE <include/std.ap>

NAMES factorial, print_factorials;

factorial := rs(x) (
    0 = 1,
    1 = 1,
    x = x * factorial(x - 1)
);

print_factorials := proc(n)loc(i)(
    i := 0;
    while(i < n,
        prn i"! = "factorial(i);
        i := i + 1
    )
);

task := print_factorials 17;

Комментарии

]]>

blog comments powered by Disqus

]]>

Работа программистам