ほんじゃら堂

めんどくさい仕事をラクにする作業自動化レシピ集

ClojureでMapの内容をコンバートしたい時はforで回してできたリストをintoでMapに再変換する

Mapの内容をコンバートする方法を調べてたら、StackOverflowで良い方法を見つけた。

stackoverflow.com

Mapのキーをキーワード化する時の方法についての相談で、下記のようなintoとforを使った方法が紹介されてた。

(into {} 
  (for [[k v] my-map] 
    [(keyword k) v]))

Mapをforで回して一旦KeyとValueのリストのリストにして返して、infoでそれをMapに変換してる。

なんてエレガントな方法があるんでしょう。

for内の処理を変えたら色々応用できそう。

into知らなかったな。知っててもこの使い方を思いついたかどうかはアレだけど。

into - clojure.core | ClojureDocs - Community-Powered Clojure Documentation and Examples