수색…


구성

다음과 같은 튜플 목록에서 Map을 생성 할 수 있습니다.

Map.fromList [("Alex", 31), ("Bob", 22)]

단일 값으로 Map을 구성 할 수도 있습니다.

> Map.singleton "Alex" 31
fromList [("Alex",31)]

empty 함수도 있습니다.

empty :: Map k a

또한 Data.Map은 union , differenceintersection 과 같은 일반적인 설정 작업을 지원 intersection .

빈 경우 확인

null 함수를 사용하여 지정된 Map이 비어 있는지 확인합니다.

> Map.null $ Map.fromList [("Alex", 31), ("Bob", 22)]
False

> Map.null $ Map.empty
True

가치 발견

지도에는 많은 쿼리 작업이 있습니다.

member :: Ord k => k -> Map ka -> Boolk 타입의 키가 Map ka 경우 True 반환합니다.

> Map.member "Alex" $ Map.singleton "Alex" 31
True
> Map.member "Jenny" $ Map.empty
False

notMember 도 비슷합니다.

> Map.notMember "Alex" $ Map.singleton "Alex" 31
False
> Map.notMember "Jenny" $ Map.empty
True

key가없는 경우 findWithDefault :: Ord k => a -> k -> Map ka -> a 를 사용하여 기본값을 얻을 수도 있습니다.

Map.findWithDefault 'x' 1 (fromList [(5,'a'), (3,'b')]) == 'x'
Map.findWithDefault 'x' 5 (fromList [(5,'a'), (3,'b')]) == 'a'

요소 삽입하기

요소를 삽입 하는 것은 간단합니다.

> let m = Map.singleton "Alex" 31
fromList [("Alex",31)]

> Map.insert "Bob" 99 m
fromList [("Alex",31),("Bob",99)]

요소 삭제하기

> let m = Map.fromList [("Alex", 31), ("Bob", 99)]
fromList [("Alex",31),("Bob",99)]

> Map.delete "Bob" m
fromList [("Alex",31)]

모듈 가져 오기

containers 패키지Data.Map 모듈은 엄격한 구현과 지연 구현을 모두 갖춘 Map 구조를 제공합니다.

Data.Map 사용할 때 Prelude에 이미 정의 된 함수와의 충돌을 피하기 위해 정규화 된 함수를 가져옵니다.

import qualified Data.Map as Map

그러면 Map 함수 호출 앞에 Map 을 추가 할 것 Map. , 예.

Map.empty -- give me an empty Map

Monoid 인스턴스

Map kvMonotype 인스턴스에 다음과 같은 의미를 제공합니다 :

  • mempty 는 빈 Map , 즉 Map.emptyMap.empty
  • m1 <> m2 왼쪽 바이어스 조합 인 m1m2 의 키가 모두 존재하는 경우, 즉, m1m2 , 다음의 값 m1 고른된다 m1 <> m2 . 이 작업은 외부로 볼 수 있습니다 Monoid 같은 인스턴스를 Map.union .


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow