R6RS:翻訳:Standard Libraries:13.2 Procedures

R6RS:翻訳:Standard Libraries:13.2 Procedures

13.2 手続き

[procedure] (hashtable? obj)

obj がハッシュテーブルであれば #t を返し、そうでなければ #f を返す。

[procedure] (hashtable-size hashtable)

hashtable 内に格納されているキーの個数を正確な整数オブジェクトとして返す。

[procedure] (hashtable-ref hashtable key default)

hashtable 内で key に対応づけられている値を返す。 hashtable にキーに関する対応が格納されていない場合は default が返される。

[procedure] (hashtable-set! hashtable key obj)

keyobj が対応づけられるように hashtable を変更する。このとき、新しい対応を追加するか既存の key への対応づけを置き換えるかする。結果として未規定値を返す。

[procedure] (hashtable-delete! hashtable key)

hashtable 内の key の対応関係を取り除き未規定値を返す。

[procedure] (hashtable-contains? hashtable key)

hashtablekey に関する対応があれば #t を返し、そうでなければ #f を返す。

[procedure] (hashtable-update! hashtable key proc default)

proc は引き数をひとつ取り、値をひとつ返す手続きであり、hashtable を変更するべきではない。 hashtable-update! 手続きは hashtable 内で key に対応づけられている値があればその値に、key に対応づけられている値がない場合には defaultproc を適用する。その後、 hashtablekeyproc が返した値が対応づけられたように変更される。

hashtable-update! の振る舞いは以下のコードと等価である。しかし、実装系が同一のキーの探索を複数回行なうことを避けられる場合には、より効率よく実装することができることもある。

(hashtable-set!
  hashtable key
  (proc (hashtable-ref
         hashtable key default)))

[procedure] (hashtable-copy hashtable)

[procedure] (hashtable-copy hashtable mutable)

hashtable の複製を返す。 mutable 引き数が与えられ、それが真であった場合、戻り値のハッシュテーブルは変更可能である。そうでない場合は変更不能である。

[procedure] (hashtable-clear! hashtable)

[procedure] (hashtable-clear! hashtable k)

hashtable からすべての対応関係を取り除き未規定値を返す。

第二引き数が与えられた場合には、現在のハッシュテーブルの容量がおよそ k 要素に再設定される。

[procedure] (hashtable-keys hashtable)

hashtable 内のキーをすべてベクタにして返す。ベクタの内容の順序は規定されていない。

[procedure] (hashtable-entries hashtable)

hashtable のキーのベクタと、それに対応する値のベクタの二値を返す。

(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)
; two return values

Last modified : 2008/11/22 10:47:35 UTC