[clojure] Clojure 멀티맵의 특징

Clojure는 함수형 프로그래밍 언어로서, 다양한 데이터 구조를 지원합니다. 멀티맵(multi-map)은 Clojure에서 제공하는 유용한 데이터 구조 중 하나입니다. 이번 포스트에서는 Clojure 멀티맵의 특징을 알아보겠습니다.

1. 멀티맵 개념

멀티맵은 키-값 쌍을 저장하는데, 키가 같은 여러 개의 값을 저장할 수 있습니다. 이는 여러 값들을 동일한 키에 매핑하고자 할 때 유용합니다.

2. 멀티맵 생성

(def multi-map (hash-map :key1 #{:value1 :value2} :key2 #{:value3}))

위의 예시 코드에서 multi-map이라는 멀티맵을 선언하고 있습니다. :key1:value1:value2를, :key2:value3를 매핑하고 있습니다.

3. 멀티맵 조작

멀티맵은 assoc 함수를 이용하여 새로운 값들을 추가하거나 업데이트할 수 있습니다.

(def new-multi-map (assoc multi-map :key1 #{:value4}))

위 예제는 multi-map에서 :key1에 새로운 값 :value4를 추가하여 new-multi-map을 만드는 예시입니다.

4. 멀티맵 사용

멀티맵에서 값들을 가져오거나 조작하기 위해서는 get이나 contains?와 같은 함수를 활용할 수 있습니다.

(get multi-map :key1)
(contains? multi-map :key2)

위의 코드에서 get:key1에 해당하는 값을 반환하고, contains?는 특정 키가 멀티맵에 존재하는지를 확인합니다.

결론

Clojure의 멀티맵은 한 개 이상의 값을 하나의 키에 매핑할 수 있는 유용한 데이터 구조입니다. 이를 통해 다양한 데이터 조작 작업을 효율적으로 수행할 수 있습니다.

더 많은 정보는 Clojure 공식 문서에서 확인할 수 있습니다.