Пролог, как удалить элемент из списка? - PullRequest
0 голосов
/ 31 мая 2018

Я знаю о предикате вычитания, который удаляет, который удаляет список элементов из списка

subtract([a,b,c,a,b], [a,c], X).

, но есть ли что-то вроде

remove([a,b,c,a,b], a, X).

Я знаю, что могу изменить вышев

subtract([a,b,c,a,b], [a], X).

Для достижения желаемого результата.

Но я хочу знать, есть ли другой способ?

РЕДАКТИРОВАТЬ:

@ user27815

Вы дали очень подробный ответ, но я все еще очень плохо знаком с прологом.И, возможно, я не правильно задал вопрос (Мой плохой).Если есть другой способ добиться этого. Это предопределено, или я должен определить это сам.А можно мне пример?

1 Ответ

0 голосов
/ 31 мая 2018

Конечно, есть много способов.Хороший способ сделать это - использовать библиотеку reif.

Повторите ответ на этот вопрос:

Удалить гласные в списке

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

remove(List,Element,NewList):-
     tinclude(not(list_memberd_truth([Element])),List,NewList). 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...