0

やりたい

(let [[a b c] '(1 2 3)]
  {:a a :b b :c c}) ;; gives {:a 1, :b 2, :c 3}

しかし、[a b c]このようなベクトルに保存されています

(def vect '[a b c])
(let [vect '(1 2 3)]
  {:a a :b b :c c}) ;; complains that a is unresolved

どうにかして var を使用して、構造を解除する方法を定義することは可能ですか?

4

2 に答える 2

1

ダニエルがそうする必要がある理由を再考する可能性があることに同意します。たとえば、正確に何を求めているのかなどです

しかし、あなたが主張するなら :)、私たちが文字通り「ab c..」で作業しているふりをして、これを行うことができます:

user=> (def xs '[a b c])
#'user/xs

user=> (into {} (for [v xs] [(keyword v) v]))
{:a a, :b b, :c c}
于 2013-10-28T01:34:46.993 に答える