[clojure] Clojure의 멀티맵 API
Clojure는 멀티맵(MultiMap)이라는 자료구조를 지원합니다. 멀티맵은 여러 개의 값에 대한 하나의 키를 가질 수 있는 데이터 구조로, Clojure의 clojure.core
네임스페이스에 포함되어 있습니다.
멀티맵 생성하기
Clojure에서 멀티맵을 생성하는 방법은 간단합니다. clojure.core
네임스페이스에서 hash-map
함수를 사용하여 키와 값의 시퀀스를 매핑하여 멀티맵을 생성할 수 있습니다.
(def multi-map (hash-map :key1 #{:value1 :value2 :value3}
:key2 #{:value4 :value5}))
위의 예제에서 multi-map
은 두 개의 키를 가지고 있으며, 각 키는 하나 이상의 값에 매핑되어 있습니다.
멀티맵에 값 추가하기
멀티맵에 새로운 값들을 추가하기 위해서는 assoc
함수를 사용할 수 있습니다.
(def updated-multi-map (assoc multi-map :key1 (conj (:key1 multi-map) :value6)))
위의 예제에서는 assoc
함수를 사용하여 :key1
에 새로운 값 :value6
을 추가한 updated-multi-map
을 생성했습니다.
값 추출하기
멀티맵에서 값들을 추출하고 싶을 때는 get
함수나 get-in
함수를 사용할 수 있습니다.
(get multi-map :key1) ;; => #{:value1 :value2 :value3}
(get-in multi-map [:key2] #{})) ;; => #{:value4 :value5}
위의 예제에서는 get
함수와 get-in
함수를 사용하여 멀티맵에서 값들을 추출하는 방법을 보여주고 있습니다.
Clojure의 멀티맵 API는 다양한 작업을 수행할 수 있는 풍부한 함수들을 제공하며, 이를 통해 데이터를 효율적으로 다룰 수 있습니다.
더 자세한 정보는 Clojure 공식 문서를 참고하세요.