Function MAPHASH

UP


Function MAPHASH

Function MAPHASH

構文

maphash function hash-table => nil

引数と戻り値

function - 2つの引数にキーと値を受け取る関数の指定子
hash-table - ハッシュテーブル

定義

hash-table内のすべてのエントリーに対して繰り返しを行います。 各エントリ―はfunctionを2つの引数に エントリーのキーと値を指定して呼び出します。

もしmaphash処理中にhash-tableからエントリーが 追加されるか削除されるかを実行しようとしたときの結果は未定義ですが、 次に示す2つの例外があります。 functionは現在処理中のエントリーの値の部分は setfgethashを使用することができます。 または、そのエントリーを削除するために 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. 横断の規則と副作用

備考

なし。


TOP, Github