Этот вопрос походит на вопрос, в чем разница между автомобилем и DeLorean.
Функция рекурсии вызывает себя до достижения базового футляра.
В обратном направлении вы используете рекурсию, чтобы исследовать все возможности, пока не получите лучший результат для проблемы.
Может быть немного трудно понять, я прилагаю текст из here:
«Концептуально, вы начинаете в корень дерева, и дерево, вероятно, имеет некоторые хорошие листья и некоторые плохие листья, хотя это может чтобы листья были хорошими или плохими. Вы хотите добраться до хорошего листа. В каждом узле, начиная с корня, вы выбираете одного из своих детей, чтобы двигаться, и вы держите его до тех пор, пока не попадете на лист .
Предположим, вы попали на плохую страницу. Вы можете вернуться назад, чтобы продолжить поиск хорошего листа, отменив свой последний выбор и попробовав следующий вариант в этом наборе параметров. Если у вас заканчиваются варианты, отменить выбор e, что привело вас сюда, и попробуйте другой выбор на этом узле. Если вы в конечном итоге в корне с не осталось вариантов, нет хороших листьев можно найти.»
Это должно пример.
Ваш кусок кода просто рекурсии, как вы никогда не возвращайся, если результат не соответствует вашей цели.
Думаю, вам лучше сделать ваш вопрос более понятным. 'ar' даже не определен в коде, который вы поставляете. – Ashe
большой вопрос! рекурсия, как вы ее показываете, служит механизмом реализации для полного перечисления всех возможных результатов; вместо того, чтобы просто печатать на базовом футляре, добавить тест, условную печать для передачи теста и опциональную процедуру спасения, и у вас есть мини-Prolog для конкретной проблемы, испеченной в. –