diff options
author | Bryan Newbold <bnewbold@robocracy.org> | 2017-02-20 00:05:29 -0800 |
---|---|---|
committer | Bryan Newbold <bnewbold@robocracy.org> | 2017-02-20 00:05:29 -0800 |
commit | 8466d8cfa486fb30d1755c4261b781135083787b (patch) | |
tree | c8c12c67246f543c3cc4f64d1c07e003cb1d45ae /hashtab.txi | |
parent | 87b82b5822ca54228cfa6df29be3ad9d4bc47d16 (diff) | |
download | slib-8466d8cfa486fb30d1755c4261b781135083787b.tar.gz slib-8466d8cfa486fb30d1755c4261b781135083787b.zip |
Import Upstream version 3a1upstream/3a1
Diffstat (limited to 'hashtab.txi')
-rw-r--r-- | hashtab.txi | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/hashtab.txi b/hashtab.txi new file mode 100644 index 0000000..b2a7a0e --- /dev/null +++ b/hashtab.txi @@ -0,0 +1,84 @@ +@code{(require 'hash-table)} +@ftindex hash-table + + +@defun predicate->hash pred + +Returns a hash function (like @code{hashq}, @code{hashv}, or +@code{hash}) corresponding to the equality predicate @var{pred}. +@var{pred} should be @code{eq?}, @code{eqv?}, @code{equal?}, @code{=}, +@code{char=?}, @code{char-ci=?}, @code{string=?}, or +@code{string-ci=?}. +@end defun +@noindent +A hash table is a vector of association lists. + + +@defun make-hash-table k + +Returns a vector of @var{k} empty (association) lists. +@end defun +@noindent +Hash table functions provide utilities for an associative database. +These functions take an equality predicate, @var{pred}, as an argument. +@var{pred} should be @code{eq?}, @code{eqv?}, @code{equal?}, @code{=}, +@code{char=?}, @code{char-ci=?}, @code{string=?}, or +@code{string-ci=?}. + + +@defun predicate->hash-asso pred + +Returns a hash association function of 2 arguments, @var{key} and +@var{hashtab}, corresponding to @var{pred}. The returned function +returns a key-value pair whose key is @var{pred}-equal to its first +argument or @code{#f} if no key in @var{hashtab} is @var{pred}-equal to +the first argument. +@end defun + +@defun hash-inquirer pred + +Returns a procedure of 2 arguments, @var{hashtab} and @var{key}, which +returns the value associated with @var{key} in @var{hashtab} or +@code{#f} if @var{key} does not appear in @var{hashtab}. +@end defun + +@defun hash-associator pred + +Returns a procedure of 3 arguments, @var{hashtab}, @var{key}, and +@var{value}, which modifies @var{hashtab} so that @var{key} and +@var{value} associated. Any previous value associated with @var{key} +will be lost. +@end defun + +@defun hash-remover pred + +Returns a procedure of 2 arguments, @var{hashtab} and @var{key}, which +modifies @var{hashtab} so that the association whose key is @var{key} is +removed. +@end defun + +@defun hash-map proc hash-table + +Returns a new hash table formed by mapping @var{proc} over the +keys and values of @var{hash-table}. @var{proc} must be a function of 2 +arguments which returns the new value part. +@end defun + +@defun hash-for-each proc hash-table + +Applies @var{proc} to each pair of keys and values of @var{hash-table}. +@var{proc} must be a function of 2 arguments. The returned value is +unspecified. +@end defun + +@defun hash-rehasher pred + +@code{hash-rehasher} accepts a hash table predicate and returns a function of two +arguments @var{hashtab} and @var{new-k} which is specialized for +that predicate. + +This function is used for nondestrutively resizing a hash table. +@var{hashtab} should be an existing hash-table using @var{pred}, @var{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. +@end defun |