Описание слайда:
1. start(1, 1).
2. stop(4, 4).
3. go(Path) :– start(X, Y),move(X, Y, [], Path).
4. move(X, Y, P, [m(X, Y) | P]) :– stop(X, Y).
5. move(X, Y, From, [m(X, Y) | To]) :– X<5, X1 is X+1,
move(X1, Y, From, To).
6. move(X, Y, From, [m(X, Y) | To]) :– Y<5, Y1 is Y+1,
move(X, Y1, From, To).
Сонда сұраныс нәтижесі басқаша болады:
?– gо(Р).
Р = [m(1,1),m(2,1),m(3,1),m(4,1),m(4,2),m(4,3),m(4,4)]
yes
Бұл бағдарламалардың айырмашылықтарына назар аударыңыз.
Бірінші кезекте қолданылатын координаттарды рекурсияның соңына қарай қозғалған процессінде сақтаймыз, екіншісінде дәл осыны қайталаймыз бірақ рекурсиядан қайту жолында.