/usr/local/lib/swipl/library/dicts.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 -- Access compound arguments by name
      • predicate_options.pl -- Access and analyse predicate options
      • sandbox.pl
      • apply_macros.pl -- Goal expansion rules to avoid meta-calling
      • yall.pl -- Lambda expressions
      • assoc.pl -- Binary associations
      • prolog_format.pl -- Analyse format specifications
      • 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
      • random.pl -- Random numbers
      • base64.pl -- Base64 encoding and decoding
      • aggregate.pl -- Aggregation operators on backtrackable predicates
      • 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 -- Dict utilities
        • mapdict/2
        • mapdict/3
        • mapdict/4
        • dicts_same_tag/2
        • dict_size/2
        • dict_keys/2
        • dicts_same_keys/2
        • dicts_to_same_keys/3
        • dict_fill/4
        • dicts_join/3
        • dicts_join/4
        • dicts_slice/3
        • dicts_to_compounds/4
      • dif.pl -- The dif/2 constraint
      • varnumbers.pl -- Utilities for numbered terms
      • pio.pl -- Pure I/O
      • make.pl -- Reload modified source files
      • macros.pl -- Macro expansion
      • heaps.pl -- heaps/priority queues
      • prolog_trace.pl -- Print access to predicates
      • rbtrees.pl -- Red black trees
      • charsio.pl -- I/O on Lists of Character Codes
      • thread.pl -- High level thread primitives
      • nb_set.pl -- Non-backtrackable sets
      • check.pl -- Consistency checking
      • listing.pl -- List programs and pretty print clauses
      • explain.pl -- Describe Prolog Terms
      • base32.pl -- Base32 encoding and decoding
      • codesio.pl -- I/O on Lists of Character Codes
      • coinduction.pl -- Co-Logic Programming
      • statistics.pl -- Get information about resource usage
      • when.pl -- Conditional coroutining
      • backcomp.pl -- Backward compatibility
      • exceptions.pl -- Exception classification
      • strings.pl
      • ctypes.pl -- Character code classification
      • prolog_codewalk.pl -- Prolog code walker
      • ansi_term.pl -- Print decorated text to ANSI consoles
      • optparse.pl
      • prolog_debug.pl -- User level debugging tools
      • threadutil.pl -- Interactive thread utilities
      • prolog_versions.pl -- Demand specific (Prolog) versions
      • prolog_wrap.pl -- Wrapping predicates
      • prolog_jiti.pl
      • rwlocks.pl
      • prolog_metainference.pl
      • prolog_coverage.pl
      • increval.pl
      • tables.pl
      • qsave.pl
      • zip.pl -- Access resource ZIP archives
      • fastrw.pl
      • quintus.pl
      • prolog_autoload.pl
      • hashtable.pl
      • writef.pl
      • portray_text.pl
      • prolog_qlfmake.pl -- Compile the library to QLF format
 dicts_to_compounds(?Dicts, +Keys, :OnEmpty, ?Compounds) is semidet
True when Dicts and Compounds are lists of the same length and each element of Compounds is a compound term whose arguments represent the values associated with the corresponding keys in Keys. When converting from dict to row, OnEmpty is used to compute missing values. The functor for the compound is the same as the tag of the pair. When converting from dict to row and the dict has no tag, the functor row is used. For example:
?- Dicts = [_{x:1}, _{x:2, y:3}],
   dicts_to_compounds(Dicts, [x], dict_fill(null), Compounds).
Compounds = [row(1), row(2)].
?- Dicts = [_{x:1}, _{x:2, y:3}],
   dicts_to_compounds(Dicts, [x,y], dict_fill(null), Compounds).
Compounds = [row(1, null), row(2, 3)].
?- Compounds = [point(1,1), point(2,4)],
   dicts_to_compounds(Dicts, [x,y], dict_fill(null), Compounds).
Dicts = [point{x:1, y:1}, point{x:2, y:4}].

When converting from Dicts to Compounds Keys may be computed by dicts_same_keys/2.