/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
      • 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
      • operators.pl
      • pairs.pl -- Operations on key-value lists
      • prolog_source.pl
      • 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
      • random.pl -- Random numbers
      • base64.pl -- Base64 encoding and decoding
      • aggregate.pl -- Aggregation operators on backtrackable predicates
      • yall.pl -- Lambda expressions
      • sandbox.pl -- Sandboxed Prolog code
      • apply_macros.pl -- Goal expansion rules to avoid meta-calling
      • assoc.pl
      • prolog_format.pl
      • 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
      • 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
      • 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
      • edinburgh.pl -- Some traditional Edinburgh predicates
      • prolog_clause.pl
      • prolog_breakpoints.pl
      • 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
      • base32.pl
      • charsio.pl
      • codesio.pl -- I/O on Lists of Character Codes
      • coinduction.pl -- Co-Logic Programming
      • heaps.pl -- heaps/priority queues
      • rbtrees.pl
      • statistics.pl -- Get information about resource usage
      • when.pl -- Conditional coroutining
      • backcomp.pl
      • ctypes.pl -- Character code classification
      • macros.pl -- Macro expansion
      • increval.pl
      • tables.pl
      • optparse.pl -- command line parsing
      • explain.pl -- Describe Prolog Terms
      • help.pl
      • threadutil.pl -- Interactive thread utilities
      • prolog_debug.pl
      • thread.pl -- High level thread primitives
      • prolog_profile.pl -- Execution profiler
      • check.pl -- Consistency checking
      • prolog_coverage.pl
      • ansi_term.pl -- Print decorated text to ANSI consoles
      • qsave.pl
      • zip.pl
      • prolog_autoload.pl
      • prolog_versions.pl
      • nb_set.pl -- Non-backtrackable sets
      • oset.pl
      • prolog_history.pl
      • prolog_jiti.pl
      • listing.pl -- List programs and pretty print clauses
      • quintus.pl -- Quintus compatibility
      • prolog_codewalk.pl -- Prolog code walker
      • shell.pl -- Elementary shell commands
      • portray_text.pl
      • writef.pl -- Old-style formatted write
      • edit.pl -- Editor interface
      • fastrw.pl
      • strings.pl -- String utilities
      • readln.pl
      • hashtable.pl -- Hash tables
      • files.pl
      • make.pl -- Reload modified source files
      • prolog_config.pl
      • streams.pl -- Manage Prolog streams
      • prolog_trace.pl -- Print access to predicates
      • exceptions.pl
      • prolog_wrap.pl
      • prolog_metainference.pl
 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.