Clojure 1.3+에서 (= m (zipmap (keys m) (vals m)))
을 사용 하시겠습니까?Clojure의지도 : 키와 값이 같은 순서입니까?
그 변경 한 경우
(defn replace-keys [smap m]
(into {} (for [[k v] m] [(smap k k) v]))
Clojure 1.3+에서 (= m (zipmap (keys m) (vals m)))
을 사용 하시겠습니까?Clojure의지도 : 키와 값이 같은 순서입니까?
그 변경 한 경우
(defn replace-keys [smap m]
(into {} (for [[k v] m] [(smap k k) v]))
이 답변은 (공식적으로) 확인할 수 있습니다. keys
과 vals
에 대한 문서화 문자열은 Clojure 1.6에서 업데이트되었습니다 (http://dev.clojure.org/jira/browse/CLJ-1302 참조).
예, Clojure의 많은 휴식 것입니다 예를 들어
(defn replace-keys [smap m]
(zipmap (replace smap (keys m)) (vals m)))
대,이 문제가 어떤 상황에서 약간 더 읽을 수있는 코드있게 가졌어요.
지도는 나무로 저장되며 두 함수는 같은 트리를 같은 순서로 사용합니다.
어디서나 문서화되었거나 변경 될 수있는 구현 세부 사항이 있습니까? –
Clojure의 Google 그룹에서 [이 질문] (https://groups.google.com/forum/?fromgroups#!topic/clojure/s1sFVF7dAVs)을 확인하십시오. 문구까지도 똑같은 질문입니다. –
예, 보았지만 _after_ 게시했습니다. – timc
일반적으로 맵 데이터 구조의 경우 "위치"를 고려하는 것이 좋지 않다고 생각합니다. – Ankur
2013 년에 이것이 구현 세부 사항 또는 약속으로 간주됩니까? – ToBeReplaced