web-dev-qa-db-ja.com

タプルの配列をClojureのハッシュマップに変換します

タプルの配列があります。各タプルは、キーと値を持つ2つのタプルです。このタプルの配列をハッシュマップに変換する最もクリーンな方法は何でしょうか?

34
Mantas Vidutis
user=> (into {} [[:a 1] [:b 2]])
{:a 1, :b 2}
48
PheliX

マップは、MapEntry要素のシーケンスです。各MapEntryは、キーと値のベクトルです。問題のタプルはすでにMapEntryの形式になっているため、便利です。 (これが、intoソリューションが優れている理由でもあります。)

user=> (reduce conj {} [[:a 1] [:b 2]])
{:b 2, :a 1}
5
miner49r

「タプル」が「2要素配列」を意味すると仮定します。

(reduce 
  (fn [m tupel] 
      (assoc m 
            (aget tupel 0) 
            (aget tupel 1))) 
  {} 
  array-of-tupels)
5
kotarak
user=> (def a [[:a 4] [:b 6]])
user=> (apply hash-map (flatten a))
{:a 4, :b 6}
3
edbond