% Function MAPHASH
Function MAPHASH
maphash
function hash-table => nil
function - 2つの引数にキーと値を受け取る関数の指定子
hash-table - ハッシュテーブル
hash-table内のすべてのエントリーに対して繰り返しを行います。 各エントリ―はfunctionを2つの引数に エントリーのキーと値を指定して呼び出します。
もしmaphash
処理中にhash-tableからエントリーが
追加されるか削除されるかを実行しようとしたときの結果は未定義ですが、
次に示す2つの例外があります。
functionは現在処理中のエントリーの値の部分は
setf
のgethash
を使用することができます。
または、そのエントリーを削除するために
remhash
を使用することができます。
(setq table (make-hash-table)) => #<HASH-TABLE EQL 0/120 32304110>
(dotimes (i 10) (setf (gethash i table) i)) => NIL
(let ((sum-of-squares 0))
(maphash #'(lambda (key val)
(let ((square (* val val)))
(incf sum-of-squares square)
(setf (gethash key table) square)))
table)
sum-of-squares) => 285
(hash-table-count table) => 10
(maphash #'(lambda (key val)
(when (oddp val) (remhash key table)))
table) => NIL
(hash-table-count table) => 5
(maphash #'(lambda (k v) (print (list k v))) table)
(0 0)
(8 64)
(2 4)
(6 36)
(4 16)
=> NIL
functionによって実行されるかもしれないもの以外にはありません。
なし。
なし。
loop
,
with-hash-table-iterator
,
3.6. 横断の規則と副作用
なし。