Clojureでリストからマップを作るには


キーと値のリストからマップを作りたいです。

[code]

    ((:a 1) (:b 2))
    
[/code]

このリストをマップにしたい。

[code]

    {:a 1, :b 2}
    
[/code]

以下のようにして結果は得られたのですが、もっとこう簡単に、またClojureらしい方法があるのではないかと思いました。

[code]

    (apply merge (map #(apply assoc {} %) '((:a 1) (:b 2))))
    
[/code]

よりよい方法があれば教えてください。

よりよいと考える理由も教えてください。

僕の方法がよくないのではないかと考える理由は効率です。リストの要素ごとにキーひとつだけのマップをまず作り、それからひとつのマップにまとめています。




`(into {} (for [[k v] '((:a 1) (:b 2))][k v]))`

とか？




`(into {} (for [[k v] '((:a 1) (:b 2))][k v]))`

とか？

