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)
=> NILfunctionによって実行されるかもしれないもの以外にはありません。
なし。
なし。
loop, with-hash-table-iterator, 3.6. 横断の規則と副作用
なし。