A.15 library(dicts): Dict utilities
AllApplicationManualNameSummaryHelp

  • Documentation
    • Reference manual
      • The SWI-Prolog library
        • library(dicts): Dict utilities
          • 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
    • Packages
Availability::- use_module(library(dicts)).(can be autoloaded)
Source[semidet]dicts_to_compounds(?Dicts, +Keys, :OnEmpty, ?Compounds)
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.