A.31 library(ordsets): Ordered set manipulation
AllApplicationManualNameSummaryHelp

  • Documentation
    • Reference manual
      • The SWI-Prolog library
        • library(ordsets): Ordered set manipulation
          • is_ordset/1
          • ord_empty/1
          • ord_seteq/2
          • list_to_ord_set/2
          • ord_intersect/2
          • ord_disjoint/2
          • ord_intersect/3
          • ord_intersection/2
          • ord_intersection/3
          • ord_intersection/4
          • ord_add_element/3
          • ord_del_element/3
          • ord_selectchk/3
          • ord_memberchk/2
          • ord_subset/2
          • ord_subtract/3
          • ord_union/2
          • ord_union/3
          • ord_union/4
          • ord_symdiff/3
    • Packages
Availability::- use_module(library(ordsets)).(can be autoloaded)
Source[det]ord_symdiff(+Set1, +Set2, ?Difference)
Is true when Difference is the symmetric difference of Set1 and Set2. I.e., Difference contains all elements that are not in the intersection of Set1 and Set2. The semantics is the same as the sequence below (but the actual implementation requires only a single scan).
      ord_union(Set1, Set2, Union),
      ord_intersection(Set1, Set2, Intersection),
      ord_subtract(Union, Intersection, Difference).

For example:

?- ord_symdiff([1,2], [2,3], X).
X = [1,3].