/*
NOTE: a set is a list without duplicates
*/
:- use_module(library(lists)).
?- is_set([1, 2, 3, 4, 5]). % true.
% convert list to set (discarding duplicates)
?- list_to_set([1, 1, 2, 3, 3, 4, 5], X). % X = [1, 2, 3, 4, 5].
% intersection
?- intersection([1, 2, 3], [3, 4, 5], X). % X = [3].
% union
?- union([1, 2, 3], [3, 4, 5], X). % X = [1, 2, 3, 4, 5].
% subset
?- subset([1, 2], [1, 2, 3, 4, 5]). % true.
% subtract
?- subtract([1, 2, 3, 4, 5], [4, 5], X). % X = [1, 2, 3].
Updated on May 27, 2023 Changelog