Повторение и рекурсия

При программировании могут быть встречаются правила, которые требуют, чтобы поиск элементов совершался несколько раз. Существуют два способа реализации правила, выполняющие одну и туже задачу многократно.
A) Повторение (итерация).
B) Рекурсия.
Правило, выполняющие повторение, использует откат, а правило, выполняющее рекурсию, использует самовызов.
Правило повторения:
repetitive_rule:– (предикаты и правила), fail.
Предикат fail искусственно вызывает откат, поэтому все, что стоит перед fail, повторяется много раз.
Вид правила, выполняющего рекурсию:
recursive_rule:– (предикаты и правила), recursive_rule.
Рекурсия требует много ресурсов памяти, так как новые копии используемых значений помещаются в СТЕК, который используется для передачи значений между правилами. Значения сохраняются до тех пор, пока правило не завершится успешно, либо неуспешно.