/usr/local/lib/swipl/library/rbtrees.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
      • settings.pl
      • arithmetic.pl -- Extensible arithmetic
      • main.pl
      • 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
      • pure_input.pl
      • solution_sequences.pl
      • ordsets.pl -- Ordered set manipulation
      • 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
      • 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
      • 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
      • rbtrees.pl -- Red black trees
        • rb_new/1
        • rb_empty/1
        • rb_lookup/3
        • rb_min/3
        • rb_max/3
        • rb_next/4
        • rb_previous/4
        • rb_update/4
        • rb_update/5
        • rb_apply/4
        • rb_in/3
        • rb_insert/4
        • rb_insert_new/4
        • rb_delete/3
        • rb_delete/4
        • rb_del_min/4
        • rb_del_max/4
        • rb_visit/2
        • rb_map/3
        • rb_map/2
        • rb_fold/4
        • rb_clone/3
        • rb_partial_map/4
        • rb_keys/2
        • list_to_rbtree/2
        • ord_list_to_rbtree/2
        • rb_size/2
        • is_rbtree/1
      • dif.pl
      • charsio.pl -- I/O on Lists of Character Codes
      • 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
      • dialect.pl
      • prolog_code.pl -- Utilities for reasoning about code
      • sort.pl
      • iostream.pl -- Utilities to deal with streams
      • dicts.pl -- Dict utilities
      • varnumbers.pl -- Utilities for numbered terms
      • base32.pl
      • codesio.pl -- I/O on Lists of Character Codes
      • coinduction.pl -- Co-Logic Programming
      • date.pl -- Process dates and times
      • heaps.pl
      • statistics.pl
      • terms.pl -- Term manipulation
      • utf8.pl -- UTF-8 encoding/decoding on lists of character codes.
      • when.pl
      • backcomp.pl -- Backward compatibility
      • threadutil.pl -- Interactive thread utilities
      • check.pl -- Consistency checking
      • oset.pl
      • prolog_codewalk.pl -- Prolog code walker
      • tables.pl
      • quintus.pl
      • shell.pl
      • prolog_jiti.pl -- Just In Time Indexing (JITI) utilities
      • rwlocks.pl
      • portray_text.pl -- Portray text
      • prolog_profile.pl -- Execution profiler
      • zip.pl
      • listing.pl -- List programs and pretty print clauses
      • prolog_metainference.pl -- Infer meta-predicate properties
      • optparse.pl -- command line parsing
      • prolog_debug.pl -- User level debugging tools
      • ansi_term.pl -- Print decorated text to ANSI consoles
      • writef.pl
      • persistency.pl
      • increval.pl -- Incremental dynamic predicate modification
      • thread.pl -- High level thread primitives
      • strings.pl -- String utilities
      • edit.pl -- Editor interface
      • prolog_coverage.pl -- Coverage analysis tool
      • prolog_versions.pl -- Demand specific (Prolog) versions
      • prolog_autoload.pl
      • make.pl -- Reload modified source files
      • ctypes.pl -- Character code classification
      • nb_set.pl -- Non-backtrackable sets
      • explain.pl
      • qsave.pl
      • fastrw.pl
      • system.pl -- System utilities
      • prolog_wrap.pl
      • prolog_trace.pl
      • exceptions.pl
      • intercept.pl
      • prolog_history.pl
      • hashtable.pl
 rb_map(+Tree, :G, -NewTree) is semidet
For all nodes Key in the tree Tree, if the value associated with key Key is Val0 in tree Tree, and if call(G,Val0,ValF) holds, then the value associated with Key in NewTree is ValF. Fails if call(G,Val0,ValF) is not satisfiable for all Val0. If G is non-deterministic, rb_map/3 will backtrack over all possible values from call(G,Val0,ValF). You should not depend on the order of tree traversal (currently: key order).