Next: Object, Previous: Dynamic Data Type, Up: Data Structures [Contents][Index]

- Function:
**predicate->hash***pred* -
Returns a hash function (like

`hashq`

,`hashv`

, or`hash`

) corresponding to the equality predicate`pred`.`pred`should be`eq?`

,`eqv?`

,`equal?`

,`=`

,`char=?`

,`char-ci=?`

,`string=?`

, or`string-ci=?`

.

A hash table is a vector of association lists.

- Function:
**make-hash-table***k* -
Returns a vector of

`k`empty (association) lists.

Hash table functions provide utilities for an associative database.
These functions take an equality predicate, `pred`, as an argument.
`pred` should be `eq?`

, `eqv?`

, `equal?`

, `=`

,
`char=?`

, `char-ci=?`

, `string=?`

, or
`string-ci=?`

.

- Function:
**predicate->hash-asso***pred* -
Returns a hash association function of 2 arguments,

`key`and`hashtab`, corresponding to`pred`. The returned function returns a key-value pair whose key is`pred`-equal to its first argument or`#f`

if no key in`hashtab`is`pred`-equal to the first argument.

- Function:
**hash-inquirer***pred* -
Returns a procedure of 2 arguments,

`hashtab`and`key`, which returns the value associated with`key`in`hashtab`or`#f`

if`key`does not appear in`hashtab`.

- Function:
**hash-associator***pred* -
Returns a procedure of 3 arguments,

`hashtab`,`key`, and`value`, which modifies`hashtab`so that`key`and`value`associated. Any previous value associated with`key`will be lost.

- Function:
**hash-remover***pred* -
Returns a procedure of 2 arguments,

`hashtab`and`key`, which modifies`hashtab`so that the association whose key is`key`is removed.

- Function:
**hash-map***proc hash-table* -
Returns a new hash table formed by mapping

`proc`over the keys and values of`hash-table`.`proc`must be a function of 2 arguments which returns the new value part.

- Function:
**hash-for-each***proc hash-table* -
Applies

`proc`to each pair of keys and values of`hash-table`.`proc`must be a function of 2 arguments. The returned value is unspecified.

- Function:
**hash-rehasher***pred* -
`hash-rehasher`

accepts a hash table predicate and returns a function of two arguments`hashtab`and`new-k`which is specialized for that predicate.This function is used for nondestrutively resizing a hash table.

`hashtab`should be an existing hash-table using`pred`,`new-k`is the size of a new hash table to be returned. The new hash table will have all of the associations of the old hash table.

Next: Object, Previous: Dynamic Data Type, Up: Data Structures [Contents][Index]