hashtable-entries - get the entries in the hashtable as two vectors

LIBRARY

(import (rnrs))                     ;R6RS
(import (rnrs hashtables))          ;R6RS

SYNOPSIS

(hashtable-entries hashtable)

DESCRIPTION

Returns a vector of the keys in hashtable and a vector of the corresponding values.

RETURN VALUES

Returns two values; two vectors of equal length.

EXAMPLES

(let ((h (make-eqv-hashtable)))
  (hashtable-set! h 1 'one)
  (hashtable-set! h 2 'two)
  (hashtable-set! h 3 'three)
  (hashtable-entries h))
    => #(1 2 3)
       #(one two three)
            ; entries may be in different order

APPLICATION USAGE

This procedure is used when iterating over the entries of a hashtable in an indeterminate order or when you need all the associated values from a hashtable.

RATIONALE

If a program needs all entries in a hashtable then this procedure is significantly faster than using hashtable-keys(3scm) together with hashtable-ref(3scm) for each key, because it does not need to use the hash and equal functions.

COMPATIBILITY

This procedure is unique to R6RS. An equivalent procedure can be found in SRFI-125 under the name hash-table-entries.

ERRORS

This procedure can raise exceptions with the following condition types:
&assertion (R6RS)
The wrong number of arguments was passed or an argument was outside its domain.

SEE ALSO

hashtable-keys(3scm)

STANDARDS

R6RS

HISTORY

This procedure first appeared in R6RS.

AUTHORS

This page is part of the scheme-manpages project. It includes materials from the RnRS documents. More information can be found at https://github.com/schemedoc/manpages/.


Markup created by unroff 1.0sc,    March 04, 2023.