Добавление элемента списку, если он отсутствует (добавление без дублирования)
добавить(X, L, L):-
member(X, L),!.
добавить(X, L, [X|L]).
?- добавить(5, [4, 3, 5], L).
L= [4,3,5];
No
?- добавить(5,[4,3],L).
L=[5,4,3];
No
Если убрать отсечение:
?- добавить (5, [4, 3, 5], L).
L = [4, 3, 5] ;
L=[5, 4, 3, 5];
No
Границы моего языка означают границы моего мира.
Людвиг Витгенштейн