Ознакомьтесь с разделом библиотека (списки): манипулирование списками в руководстве SWI-Prolog.Попробуйте перечисленные там специфичные для набора предикаты и проверьте их исходный код, используя listing/1
, например,
?- listing(subset).
lists:subset([], _) :- !.
lists:subset([A|C], B) :-
memberchk(A, B),
subset(C, B).
Наборы представлены в виде списков, поэтому для проверки членов используйте member/2
, чтобы проверить, установлен ли наборпусто, проверьте, объединяется ли оно с пустым списком.Чтобы проверить природу элементов набора, например, чтобы увидеть, все ли числа, вы можете использовать maplist
:
?- maplist(number, [1, -1.2, 0]).
true.
Два набора эквивалентны, если они являются подмножествами друг друга.