make-hash-table

Title
make-hash-table
Type
Function
Arguments
make-hash-table &key :test :size :rehash-size :rehash-threshold
Package
lisp
Section
ハッシュ
File
builtin.l
ハッシュテーブルを作成して返します。

  :test        : ハッシュテーブルのキーの等価関係。デフォルトは eql です。
                 指定可能な関数は、eq, eql, equal, equalp に限られます。
  :size        : ハッシュテーブルの初期サイズの目安。
                 この値よりも大きい素数、または 2, 3, 5, 7 で割れない値
                 に設定されます。
  :rehash-size : ハッシュテーブルのテーブルサイズを増加させる量の目安。
                 デフォルトは 1。現在のサイズ と :rehash-size を参考
                 に、より大きい素数、または 2, 3, 5, 7 で割れないサイズ
                 にします。
  :rehash-threshold
               : xyzzy では実装されていないようです。 (0.2.2.235 現在)
                 その代わり、テーブルの使用率が 80% を超えるとテーブル
                 を伸長します。

とりうる素数は以下の通りです。
      17, 47, 101, 149, 199, 307, 401, 499, 599, 701, 797, 907, 997,
      1103, 1499, 1999, 2999, 4001, 4999, 6007, 7001, 8009, 8999,
      10007, 19997, 29989, 39989, 49999, 59999, 70001, 79999, 90001, 99991

使用例:
  (setq hash (make-hash-table :size 3))
  => #<hashtable 51122492>

  (progn
    (setf (gethash #\C-0 hash) 0)
    (setf (gethash #\C-1 hash) 1)
    (setf (gethash #\C-2 hash) 2))
  => 2
  
  (gethash #\C-1 hash)
  => 1
      t

  (hash-table-size hash)
  => 17

  (hash-table-rehash-size hash)
  => 1

  (hash-table-test hash)
  => eql
Seealso
gethash
hash-table-count
hash-table-p
hash-table-rehash-size
hash-table-size
hash-table-test
remhash
clrhash
maphash
eql