ハッシュ
Type: Function
Arguments: clrhash HASH-TABLE
Package: lisp
File: builtin.l
ハッシュテーブルの全要素を削除します。
HASH-TABLE : ハッシュテーブルを指定します。
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)
Type: Function
Arguments: gethash-region FROM TO HASHTABLE &optional DEFAULT
Package: editor
File: builtin.l
リージョンの文字列をハッシュテーブルから取得します。
(buffer-substring FROM TO)してから(gethash ... HASHTABLE)するようなものです。
SeeAlso: gethash
Type: Function
Arguments: hash-table-count HASH-TABLE
Package: lisp
File: builtin.l
ハッシュテーブルの要素数を返します。
HASH-TABLE : ハッシュテーブルを指定します。
Type: Function
Arguments: hash-table-p OBJECT
Package: lisp
File: builtin.l
オブジェクトがハッシュテーブルかどうかを返します。
OBJECT : 判定するオブジェクトを指定します。
(hash-table-p x) == (typep x 'hash-table)
Type: Function
Arguments: hash-table-rehash-size HASH-TABLE
Package: lisp
File: builtin.l
ハッシュテーブルの現在のrehash-sizeを返します。
HASH-TABLE : ハッシュテーブルを指定します。
Type: Function
Arguments: hash-table-size HASH-TABLE
Package: lisp
File: builtin.l
ハッシュテーブルの現在の大きさを返します。
HASH-TABLE : ハッシュテーブルを指定します。
Type: Function
Arguments: hash-table-test HASH-TABLE
Package: lisp
File: builtin.l
ハッシュテーブルのキーを比較する関数を返します。
HASH-TABLE : ハッシュテーブルを指定します。
使用例:
(hash-table-test hash-table)
=> eql
Type: Function
Arguments: make-hash-table &key :test :size :rehash-size :rehash-threshold
Package: lisp
File: builtin.l
ハッシュテーブルを作成して返します。
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"
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
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