eq_hash(obj)
eqv_hash(obj)
equal_hash(obj)
string_hash(str)
string_ci_hash(str)
symbol_hash(sym)
Return an exact nonnegative integer hash value generated from the argument object.
These hash function are suitable for use with the appropriate predicate: is_eq
for
eq_hash
and symbol_hash
, is_eqv
for eqv_hash
,
is_equal
for equal_hash
,
string_is_eq
for string_hash
, and
string_is_ci_eq
for string_ci_hash
. In other words,
eq_hash(a) == eq_hash(b)
implies is_eq(a, b) ==
, true
eqv_hash(a) == eqv_hash(b)
implies
is_eqv(a, b) ==
, true
equal_hash(a) == equal_hash(b)
implies is_equal(a, b) ==
,
true
string_hash(s1) == string_hash(s2)
implies string_is_eq(s1, s2) ==
,
and true
string_ci_hash(s1) == string_ci_hash(s2)
implies string_is_eq(s1, s2) ==
.true
For symbol_hash
, when sym
is an interned symbol the value returned is the same as:
string_hash(symbol_to_string(sym))
.
The hash values returned by equal_hash
, string_hash
, and string_ci_hash
are typically
dependent on the current structure and contents of the input values and are thus unsuitable
if keys are modified while they have associations in a hash table.
string_hash("car")
// 444471047
string_hash("car") == symbol_hash('car)
// true