For Gauche 0.9.12Search (procedure/syntax/module):

Next: , Previous: , Up: ライブラリモジュール - SRFI   [Contents][Index]

11.16 srfi-69 - 基本的なハッシュテーブル

Module: srfi-69

このモジュールはR7RSのscheme.hash-tableにより更改されています。 (R7RSハッシュテーブル参照)。新たなコードはそちらを使うようにしてください。

このモジュールは、Gauche組み込みのハッシュテーブルのごく薄いラッパーです (ハッシュテーブル参照)。このsrfiを要求するライブラリへの互換性のためだけに 提供されています。このモジュールのmake-hash-tableで作られるハッシュテーブルは Gauche組み込みのハッシュテーブルそのものなので、どちらのAPIにも渡せます。


以下の手続きはGauche組み込みのものと同じです。 ハッシュテーブルを参照してください。

hash-table?       hash-table-delete!   hash-table-exists?
hash-table-keys   hash-table-values    hash-table-fold
hash-table->alist hash-table-copy
Function: make-hash-table :optional eq-pred hash-proc :rest args

[SRFI-69] {srfi-69} Creates a new hashtable and returns it. This is the same name as Gauche’s built-in procedure, but the arguments are different.

The eq-pred argument is an equality predicate; it takes two arguments and returns #t if two are the same, and #f if not. When omitted, equal? is used.

The hash-proc argument is a hash function. It takes two arguments: an object to hash, and a positive integer to limit the range of the hash value. (Note that Gauche’s native hash functions takes only one argument.) When omitted, Gauche tries to choose appropriate hash function if eq-pred is known one (eq?, eqv?, equal?, string=? or string-ci=?). Otherwise we use Gauche’s hash procedure, but there’s no guarantee that it works appropriately; you should give suitable hash-proc if you pass custom eq-pred.

The returned hash table is an instance of Gauche’s native hash table. You can pass it to Gauche’s builtin procedures.

Srfi-69 allows implementation-specific arguments args to be passed to make-hash-table. At this moment, Gauche ignores them.

Function: alist->hash-table alist :optional eq-pred hash-fn :rest args

[SRFI-69] {srfi-69} Like Gauche’s builtin alist->hash-table, but takes eq-pred and hash-fn separately, instead of a single comparator.

The alist argument is a list of pairs. The car of each pair is used for a key, and the cdr for its value.

See make-hash-table above for the description of eq-pred, hash-fn and args.

Function: hash-table-equivalence-function ht
Function: hash-table-hash-function ht

[SRFI-69] {srfi-69} Returns equivalence function and hash function of the hashtable ht.

Note that srfi-69’s hash function takes an optional bound argument. Since our underlying hash tables don’t use bound argument, we actually wrap the internal hash function to allow the optional bound argument.

Function: hash-table-ref ht key :optional thunk

[SRFI-69] {srfi-69} Looks up the value corresponding to key in a hash table ht. If there’s no entry for key, thunk is called without arguments. The default of thunk is to signal an error.

Function: hash-table-ref/default ht key default

[SRFI-69] {srfi-69} Looks up the value corresponding to key in a hash table ht. This is like Gauche’s hash-table-get, but default can’t be omitted.

Function: hash-table-set! ht key val

[SRFI-69] {srfi-69} This is the same as Gauche’s hash-table-put!.

Function: hash-table-update! ht key proc :optional thunk
Function: hash-table-update!/default ht key proc default

[SRFI-69] {srfi-69}

Function: hash-table-size ht

[SRFI-69] {srfi-69} Returns the number of entries in a hash table ht. The same as Gauche’s hash-table-num-entries.

Function: hash-table-walk ht proc

[SRFI-69] {srfi-69} For each entry in a hash table ht, calls proc with two arguments, a key and its value. It’s the same as Gauche’s hash-table-for-each.

Function: hash-table-merge! ht1 ht2

[SRFI-69] {srfi-69} Add all entries in a hash table ht2 into a hash table ht1, and returns ht1.

Function: hash obj :optional bound

[SRFI-69] {srfi-69} Like Gauche’s hash, except this one can take bound argument; if provided, it must be a positive integer, and the return value is limited between 0 and (- bound 1), inclusive.

Function: string-hash obj :optional bound
Function: string-ci-hash obj :optional bound

[SRFI-69] {srfi-69} These are like srfi-13’s (see 文字列ライブラリ), except these don’t take start and end argument.

Function: hash-by-identity obj :optional bound

[SRFI-69] {srfi-69} This is Gauche’s eq-hash, except this one can take bound argument.

Next: , Previous: , Up: ライブラリモジュール - SRFI   [Contents][Index]

For Gauche 0.9.12Search (procedure/syntax/module):