***_hash


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) == true, and 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.

Examples:


string_hash("car")
// 444471047
string_hash("car") == symbol_hash('car)
// true
      

Core Module Index | Contents