ハッシュのキーに任意のオブジェクトを使用する


Tags: ハッシュ, 【募集中】

ハッシュのキーに任意のオブジェクトを使用する

ハッシュテーブルのキーの比較に用いる関数は :test キーワードパラメタで指定できます。

ただし、指定できるのは #'eq #'eql #'equal #'equalp のいずれかだけです。 つまり、キーに使用できるオブジェクトはこれらの関数で同値判定できるものに限られます。

処理系の独自拡張で任意の比較関数を指定できる場合があります。 比較関数とハッシュ値計算関数の両方をあたえる必要があるようです。

 (make-hash-table :test #'my-eql :hash-function #'my-hash)

or

 (sb-int:define-hash-table-test 'my-test #'my-eql #'my-hash)
 (make-hash-table :test 'my-test)

more【募集中】