Пролог | Удалить подсписок из списка - PullRequest
0 голосов
/ 29 апреля 2020

Впервые на Прологе, я пытаюсь удалить подсписок из списка и вернуть результат, я чувствую, что я близок, но он не работает.

    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]. Кто-нибудь знает, как избавиться от анонимных переменных там?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...