ВУЗ:
Составители:
Рубрика:
- 15 -
Механизм рекурсии - один из наиболее традиционных механизмов
программирования.
+------------------------------------------------------+
¦ Турбо-Пролог - это последовательный язык. ¦
¦ Несмотря на то, что он вышел из математической ¦
¦ логики, он последовательно сопоставляет с базой ¦
¦ данных предикаты (или выражения для одного ¦
¦ предиката) в порядке их нахождения в теле ¦
¦ программы. ¦
+------------------------------------------------------+
Для увеличения производительности программ и экономии стека
следует применять остаточную рекурсию (или итерационное определе-
ние предиката).
Пример 1: Вычисление факториала методом рекурсии.
PREDICATES
factorial(INTEGER,INTEGER)
factorial_it(INTEGER,INTEGER,INTEGER)
CLAUSES
factorial(1,1):-!.
factorial(N,X):-
M = N-1,
factorial(M,Y),
X = Y*N.
Пример 2: Вычисление факториала с помощью остаточной рекур-
сии (итерационное вычисление).
PREDICATES
factorial(INTEGER,INTEGER)
factorial_it(INTEGER,INTEGER,INTEGER)
CLAUSES
factorial(N,X):-factorial_it(N,1,X),!.
factorial_it(N,X,C):-
not(N=1),
M = N-1,
Y = X*N,!,
factorial_it(M,Y,C).
factorial_it(_,X,X):-!.
Страницы
- « первая
- ‹ предыдущая
- …
- 13
- 14
- 15
- 16
- 17
- …
- следующая ›
- последняя »