19
文字列をキーとするハッシュテーブルなどの辞書タイプを作成しようとしています。これはLispで可能か賢明ですか?Common Lispで文字列オブジェクトをハッシュキーとして使用する
私は期待通り、この作品に気づい:
> (setq table (make-hash-table))
#<HASH-TABLE :TEST EQL size 0/60 #x91AFA46>
> (setf (gethash 1 table) "one")
"one"
> (gethash 1 table)
"one"
しかし、次はしていません:
> (setq table (make-hash-table))
#<HASH-TABLE :TEST EQL size 0/60 #x91AFA0E>
> table
#<HASH-TABLE :TEST EQL size 0/60 #x91AFA0E>
> (setf (gethash "one" table) 1)
1
> (gethash "one" table)
NIL
NIL
この例では、CLHSだけがこれを持っています。それが明白でない場合は、ドキュメントを参照することが役立ちます。http://www.lispworks.com/documentation/HyperSpec/Body/f_mk_has.htm –
大文字と小文字を区別しない文字列ハッシングが必要な場合は、代わりにEQUALPを使用してください。 – skypher
ありがとうございました。私はドキュメントをチェックしましたが、私は何かをジョグするために、その特定の部分の多くの平等関数に十分な注意を払っていませんでした。私は(間違った)仮定の下にあった "それはちょうど私が必要とするべきことをする"。 – Justicle