/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
      • 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
      • 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
      • yall.pl -- Lambda expressions
      • sandbox.pl -- Sandboxed Prolog code
      • 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
      • 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
      • 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 -- Dict utilities
      • 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 -- heaps/priority queues
      • rbtrees.pl -- Red black trees
      • statistics.pl -- Get information about resource usage
      • when.pl -- Conditional coroutining
      • backcomp.pl
      • increval.pl -- Incremental dynamic predicate modification
      • tables.pl -- XSB interface to tables
      • nb_set.pl
      • make.pl
      • check.pl -- Consistency checking
      • prolog_profile.pl
      • prolog_coverage.pl -- Coverage analysis tool
      • shell.pl -- Elementary shell commands
      • listing.pl
      • ansi_term.pl -- Print decorated text to ANSI consoles
      • prolog_autoload.pl -- Autoload all dependencies
      • edit.pl -- Editor interface
      • quintus.pl
      • strings.pl
      • optparse.pl -- command line parsing
      • prolog_debug.pl -- User level debugging tools
      • threadutil.pl -- Interactive thread utilities
      • thread.pl -- High level thread primitives
      • prolog_versions.pl -- Demand specific (Prolog) versions
      • rwlocks.pl -- Read/write locks
      • prolog_trace.pl -- Print access to predicates
      • streams.pl -- Manage Prolog streams
      • oset.pl -- Ordered set manipulation
      • prolog_codewalk.pl -- Prolog code walker
      • readln.pl
      • exceptions.pl -- Exception classification
      • fastrw.pl -- Fast reading and writing of terms
      • macros.pl -- Macro expansion
      • ctypes.pl -- Character code classification
      • prolog_wrap.pl -- Wrapping predicates
      • qsave.pl
      • zip.pl -- Access resource ZIP archives
      • prolog_metainference.pl
      • hashtable.pl
      • tty.pl
      • help.pl -- Text based manual
      • writef.pl -- Old-style formatted write
      • prolog_config.pl
      • prolog_history.pl -- Per-directory persistent commandline history
      • explain.pl -- Describe Prolog Terms
      • prolog_jiti.pl
      • intercept.pl
      • files.pl
      • portray_text.pl -- Portray text
 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].