Впервые на Прологе, я пытаюсь удалить подсписок из списка и вернуть результат, я чувствую, что я близок, но он не работает.
remove_sublist([],[],[]).
remove_sublist(Lst,Sub,Ret):-
Lst = [H|T], Ret = [H1|T1],
(/+member(H,Sub)
->H1 is H, remove_sublist(T,Sub,Ret)
;remove_sublist(T,Sub,Ret)).
Например, когда я ввожу запрос Я хочу, чтобы он вывел следующее:
?- remove_sublist([1,2,3,4,5,6],[2,4,6],X).
X = [1,3,5].
Не уверен, откуда go отсюда я удалил и переписал код на несколько часов ...
Редактировать / обновить : Я изменил базовый вариант с:
remove_sublist([],[],[]).
на
remove_sublist([],Sub,Ret).
, и теперь он выводит это: X = [1,3,5, _11996 | _11998]. Кто-нибудь знает, как избавиться от анонимных переменных там?