ハッシュ


clrhash

Type: Function
Arguments: clrhash HASH-TABLE
Package: lisp
File: builtin.l
ハッシュテーブルの全要素を削除します。

  HASH-TABLE : ハッシュテーブルを指定します。

[ Intro | 目次 | 索引 | 目的別 | ハッシュ ]

gethash

Type: Function
Arguments: gethash KEY HASH-TABLE &optional DEFAULT
Package: lisp
File: builtin.l
ハッシュテーブルの中からキーが一致するものを返します。

  KEY        : 検索するキーを指定します。
  HASH-TABLE : ハッシュテーブルを指定します。

使用例:
  (setq hash-table (make-hash-table))
  => #<hash table>
  (gethash 'a hash-table)
  => nil
  (setf (gethash 'a hash-table) 1)
  => 1
  (gethash 'a hash-table)
  => 1

  (setq h (make-hash-table :test #'equalp))
  (setf (gethash "body" h) '(a b c))
  (gethash "BODY" h)

SeeAlso: maphash
SeeAlso: make-hash-table
[ Intro | 目次 | 索引 | 目的別 | ハッシュ ]

gethash-region

Type: Function
Arguments: gethash-region FROM TO HASHTABLE &optional DEFAULT
Package: editor
File: builtin.l
リージョンの文字列をハッシュテーブルから取得します。
(buffer-substring FROM TO)してから(gethash ... HASHTABLE)するようなものです。

SeeAlso: gethash
[ Intro | 目次 | 索引 | 目的別 | ハッシュ ]

hash-table-count

Type: Function
Arguments: hash-table-count HASH-TABLE
Package: lisp
File: builtin.l
ハッシュテーブルの要素数を返します。

  HASH-TABLE : ハッシュテーブルを指定します。

[ Intro | 目次 | 索引 | 目的別 | ハッシュ ]

hash-table-p

Type: Function
Arguments: hash-table-p OBJECT
Package: lisp
File: builtin.l
オブジェクトがハッシュテーブルかどうかを返します。

  OBJECT : 判定するオブジェクトを指定します。

  (hash-table-p x) == (typep x 'hash-table)

[ Intro | 目次 | 索引 | 目的別 | ハッシュ ]

hash-table-rehash-size

Type: Function
Arguments: hash-table-rehash-size HASH-TABLE
Package: lisp
File: builtin.l
ハッシュテーブルの現在のrehash-sizeを返します。

  HASH-TABLE : ハッシュテーブルを指定します。

[ Intro | 目次 | 索引 | 目的別 | ハッシュ ]

hash-table-size

Type: Function
Arguments: hash-table-size HASH-TABLE
Package: lisp
File: builtin.l
ハッシュテーブルの現在の大きさを返します。

  HASH-TABLE : ハッシュテーブルを指定します。

[ Intro | 目次 | 索引 | 目的別 | ハッシュ ]

hash-table-test

Type: Function
Arguments: hash-table-test HASH-TABLE
Package: lisp
File: builtin.l
ハッシュテーブルのキーを比較する関数を返します。

  HASH-TABLE : ハッシュテーブルを指定します。

使用例:
  (hash-table-test hash-table)
  => eql

[ Intro | 目次 | 索引 | 目的別 | ハッシュ ]

make-hash-table

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

SeeAlso: gethash
[ Intro | 目次 | 索引 | 目的別 | ハッシュ ]

maphash

Type: Function
Arguments: maphash FUNCTION HASH-TABLE
Package: lisp
File: hash.l
ハッシュテーブルの各要素を関数に渡します。

  FUNCTION   : キーと値を受け取る関数
  HASH-TABLE : ハッシュテーブルを指定します。

使用例:
  (setf (gethash #\a hsh) "Apple")  => "Apple"
  (setf (gethash #\b hsh) "Banana") => "Banana"
  (setf (gethash #\c hsh) "Cake")   => "Cake"
  (with-output-to-selected-buffer
    (maphash #'(lambda (x y) (format t "~S ~S~%"x y)) hsh))
  #\a "Apple"
  #\b "Banana"
  #\c "Cake"

SeeAlso: with-hash-table-iterator
[ Intro | 目次 | 索引 | 目的別 | ハッシュ ]

remhash

Type: Function
Arguments: remhash KEY HASH-TABLE
Package: lisp
File: builtin.l
ハッシュテーブルの中からキーが一致するものを削除します。

  KEY        : 削除するキーを指定します。
  HASH-TABLE : ハッシュテーブルを指定します。

一致するキーが存在すれば削除してtを返します。
なければnilを返します。

使用例:
  (setq hash-table (make-hash-table))
  => #<hash table>
  (setf (gethash 'a hash-table) 1)
  => 1
  (remhash 'b hash-table)
  => nil
  (remhash 'a hash-table)
  => t

[ Intro | 目次 | 索引 | 目的別 | ハッシュ ]

with-hash-table-iterator

Type: Macro
Arguments: with-hash-table-iterator (MNAME HASH-TABLE) &body BODY
Package: lisp
File: hash.l
ハッシュテーブルの要素を順番に返す関数を返してもらいます。

  MNAME      : 要素を順番に返す関数名を指定します。
               この関数は要素を列挙し終わるとnilを返します。
  HASH-TABLE : ハッシュテーブルを指定します。
  BODY       : フォームを記述します。

関数が順番に要素を返すので、loopを使ってnilが返るまで繰り返します。

使用例:
  (with-output-to-selected-buffer
    (with-hash-table-iterator (foo hsh)
      (loop
        (multiple-value-bind (f x y)
            (foo)
          (unless f (return))
          (format t "~S ~S~%" x y)))))

SeeAlso: maphash
[ Intro | 目次 | 索引 | 目的別 | ハッシュ ]