1
永続マップ内の2つのキーの値を入れ替えるClojure関数はありますか?私が知っている最高ののthisある永続マップに2つのキー値を入れ替えるClojure関数はありますか?
(defn swap-keys [map k1 k2]
(let [f (get map k1) s (get map k2)]
(assoc map k1 s k2 f)))
(swap-keys {:a 1 :b 2 :c 3 :d 4} :a :c)
;; => {:a 3, :b 2, :c 1, :d 4}
可能な重複[ベクトル内の2つの要素を交換する慣用的な方法は何ですか](HTTP: //stackoverflow.com/questions/5979538/what-is-the-ietomatic-way-to-swap-two-elements-in-a-vector);この場合、マップとベクトルとの間に差異はない。 –
@Elogent私はすでに所望の効果を達成する方法を知っています。私はむしろ、この仕事をしてくれるClojure標準ライブラリの機能を探しています。 私の質問はこれを行う方法ではありませんが、Clojureの機能(もしあれば)がこの仕事をしているので、言及した質問は私のものとは異なります。 – foki
いずれにしても、2つの別個の質問が同じ回答を認めてもよい。 :) – galdre