
hash_map(+Table, ++Key, ?Value)

   Lookup or set Value as the value associated with Key

Arguments
   Table               A hash table
   Key                 a ground term
   Value               Any term

Type
   library(hash)

Description
Unify Value with the table entry for Key, creating a fresh
    table entry if it does not exist yet.  Behaves like

        hash_map(Map, Key, Value) :-
            ( hash_get(Map, Key, V) -> Value=V
            ; hash_set(Map, Key, Value)
            ).

    With this predicate, the table behaves as if it were initialised with
    free variables for every possible key.  This is most useful when the
    table is used to associate logical variables with ground keys.

Modes and Determinism
   hash_map(+, ++, -) is det
   hash_map(+, ++, +) is semidet

Examples
   
	?- hash_create(H),
           hash_map(H, one, X),
           hash_map(H, one, Y).

           X = X
           Y = X
           Yes (0.00s cpu)
    

See Also
   hash_get / 3, hash_set / 3, hash_update / 5
