[ library(hash) | Reference Manual | Alphabetic Index ]
hash_map(+Table, ++Key, ?Value)
Lookup or set Value as the value associated with Key
- Table
- A hash table
- Key
- a ground term
- Value
- Any term
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