+1 за рекламу
не вопрос курсовой работы. Просто мое личное обучение.)
Я пытаюсь выполнить упражнение в Прологе, чтобы удалить элементы из списка. Вот мой код:
deleteall([],X,[]).
deleteall([H|T],X,Result) :-
H==X,
deleteall(T,X,Result).
deleteall([H|T],X,[H|Result]) :- deleteall(T,X,Result).
Когда я проверяю его, я сначала получаю хороший ответ (т. Е. Со всеми удаленными X). Но затем при возврате мне предлагаются все другие варианты списка с некоторыми или ни с одним удаленным экземпляром X.
Почему это должно быть? Почему случаи, когда H == X когда-либо проваливаются до последнего предложения?