2011-10-06 5 views
5

どのようにして複合キーをクロージャーに実装できますか?マップがある場合 例えば、姓と名字は属性のリストを指します。キーとして両方のフィールドを含むマップを作成できますか?どのようにして複合キーをクロージャーに実装できますか?

また、javaではマップの非常に高度なキーを作るために "equals"をオーバーライドすることができます...洗練されたキーはどのように実装されていますか?

答えて

11

equalsをキーとして正しく実装するオブジェクトを使用できます。 clojureには、すべてのコレクションタイプが含まれているので、標準のクロージャコレクションをキーとして使用できます。 2要素ベクトルをキーとして使用する例:

(def foo {[1 2] :bar [3 4] :baz}) 
=> #'user/foo 
(foo [1 2]) 
=> :bar 
関連する問題