2014-09-11 1 views

답변

2

이것을 수행하기 위해 clojure.walk/postwalk을 사용했습니다.

(defn transform-keys 
    "Recursively transforms all map keys in coll with the transform-key fn." 
    [transform-key coll] 
    (letfn [(transform [x] (if (map? x) 
          (into {} (map (fn [[k v]] [(transform-key k) v]) x)) 
          x))] 
    (walk/postwalk transform coll))) 

첫 번째 인수는 기존 키를 가져와 새 함수를 반환하는 함수입니다. 귀하의 경우, 키워드를 문자열로 변환하고, 밑줄을 하이픈으로 바꾸고, 다시 키워드로 변환 할 수 있습니다.

https://gist.github.com/jeremyheiler/fe9256e540121e771285