0
member_state(S, S|_).
member_state(X, _|T) :- member_state(X,T).
step1 :- step2(state(l,l,l,l)).
step2(X) :- step3(X|state(l,l,l,r)).
step3(X) :- step4(X|state(l,l,r,l)).
step4(X) :- member_state(state(l,l,l,l), X).
Я пытаюсь создать список для каждого вызова, а затем в конце проверить, находится ли вставленное состояние в созданном списке, вызывая step1. Пролог дает мне ложный результат. Может ли кто-нибудь указать на проблему, пожалуйста? Мне нужно получить «да». Спасибо. (это всего лишь тест, а не фактический код)Рекурсивный пролог вызова и список прохождения