/usr/local/lib/swipl/library/ordsets.pl
All Application Manual Name SummaryHelp

  • swipl
    • library
      • error.pl
      • debug.pl -- Print debug messages and test assertions
      • apply.pl -- Apply predicates on a list
      • lists.pl -- List Manipulation
      • broadcast.pl -- Event service
      • shlib.pl -- Utility library for loading foreign objects (DLLs, shared objects)
      • option.pl -- Option list processing
      • thread_pool.pl -- Resource bounded thread management
      • gensym.pl -- Generate unique symbols
      • settings.pl -- Setting management
      • arithmetic.pl -- Extensible arithmetic
      • main.pl -- Provide entry point for scripts
      • readutil.pl -- Read utilities
      • operators.pl -- Manage operators
      • pairs.pl -- Operations on key-value lists
      • prolog_source.pl -- Examine Prolog source-files
      • record.pl
      • quasi_quotations.pl -- Define Quasi Quotation syntax
      • pure_input.pl -- Pure Input from files and streams
      • solution_sequences.pl -- Modify solution sequences
      • ordsets.pl -- 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
      • random.pl -- Random numbers
      • base64.pl -- Base64 encoding and decoding
      • aggregate.pl -- Aggregation operators on backtrackable predicates
      • yall.pl
      • sandbox.pl
      • apply_macros.pl -- Goal expansion rules to avoid meta-calling
      • assoc.pl -- Binary associations
      • prolog_format.pl -- Analyse format specifications
      • predicate_options.pl -- Access and analyse predicate options
      • csv.pl -- Process CSV (Comma-Separated Values) data
      • pprint.pl -- Pretty Print Prolog terms
      • atom.pl -- Operations on atoms
      • modules.pl -- Module utility predicates
      • occurs.pl -- Finding and counting sub-terms
      • prolog_xref.pl -- Prolog cross-referencer data collection
      • prolog_colour.pl -- Prolog syntax colouring support.
      • lazy_lists.pl -- Lazy list handling
      • ugraphs.pl -- Graph manipulation library
      • url.pl -- Analysing and constructing URL
      • www_browser.pl -- Open a URL in the users browser
      • prolog_pack.pl -- A package manager for Prolog
      • git.pl -- Run GIT commands
      • utf8.pl -- UTF-8 encoding/decoding on lists of character codes.
      • dialect.pl -- Support multiple Prolog dialects
      • system.pl -- System utilities
      • terms.pl -- Term manipulation
      • date.pl -- Process dates and times
      • persistency.pl -- Provide persistent dynamic predicates
      • iostream.pl -- Utilities to deal with streams
      • prolog_stack.pl -- Examine the Prolog stack
      • edinburgh.pl -- Some traditional Edinburgh predicates
      • prolog_clause.pl
      • prolog_breakpoints.pl -- Manage Prolog break-points
      • wfs.pl -- Well Founded Semantics interface
      • prolog_code.pl -- Utilities for reasoning about code
      • sort.pl
      • dicts.pl
      • dif.pl -- The dif/2 constraint
      • varnumbers.pl -- Utilities for numbered terms
      • pio.pl -- Pure I/O
      • base32.pl -- Base32 encoding and decoding
      • charsio.pl -- I/O on Lists of Character Codes
      • codesio.pl -- I/O on Lists of Character Codes
      • coinduction.pl -- Co-Logic Programming
      • heaps.pl
      • rbtrees.pl -- Red black trees
      • statistics.pl -- Get information about resource usage
      • when.pl -- Conditional coroutining
      • backcomp.pl -- Backward compatibility
      • prolog_jiti.pl -- Just In Time Indexing (JITI) utilities
      • prolog_trace.pl -- Print access to predicates
      • intercept.pl -- Intercept and signal interface
      • increval.pl -- Incremental dynamic predicate modification
      • tables.pl -- XSB interface to tables
      • edit.pl -- Editor interface
      • prolog_coverage.pl -- Coverage analysis tool
      • optparse.pl
      • listing.pl -- List programs and pretty print clauses
      • prolog_debug.pl
      • help.pl
      • hashtable.pl -- Hash tables
      • exceptions.pl
      • thread.pl -- High level thread primitives
      • macros.pl
      • portray_text.pl -- Portray text
      • threadutil.pl -- Interactive thread utilities
      • prolog_profile.pl -- Execution profiler
      • prolog_codewalk.pl -- Prolog code walker
      • strings.pl -- String utilities
      • ansi_term.pl -- Print decorated text to ANSI consoles
      • rwlocks.pl
      • ctypes.pl -- Character code classification
      • check.pl -- Consistency checking
      • quintus.pl -- Quintus compatibility
      • make.pl -- Reload modified source files
      • prolog_metainference.pl -- Infer meta-predicate properties
      • prolog_versions.pl -- Demand specific (Prolog) versions
      • prolog_wrap.pl -- Wrapping predicates
      • shell.pl -- Elementary shell commands
      • zip.pl
      • writef.pl
      • nb_set.pl -- Non-backtrackable sets
      • prolog_autoload.pl
      • streams.pl -- Manage Prolog streams
      • readln.pl
      • fastrw.pl
      • explain.pl -- Describe Prolog Terms
      • tty.pl
      • files.pl
      • oset.pl
      • qsave.pl
 ord_symdiff(+Set1, +Set2, ?Difference) is det
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].