Haskell Language
컨테이너 - 데이터. 맵핑
수색…
구성
다음과 같은 튜플 목록에서 Map을 생성 할 수 있습니다.
Map.fromList [("Alex", 31), ("Bob", 22)]
단일 값으로 Map을 구성 할 수도 있습니다.
> Map.singleton "Alex" 31 fromList [("Alex",31)]
empty
함수도 있습니다.
empty :: Map k a
또한 Data.Map은 union
, difference
및 intersection
과 같은 일반적인 설정 작업을 지원 intersection
.
빈 경우 확인
null
함수를 사용하여 지정된 Map이 비어 있는지 확인합니다.
> Map.null $ Map.fromList [("Alex", 31), ("Bob", 22)] False > Map.null $ Map.empty True
가치 발견
지도에는 많은 쿼리 작업이 있습니다.
member :: Ord k => k -> Map ka -> Bool
은 k
타입의 키가 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 kv
는 Monotype 인스턴스에 다음과 같은 의미를 제공합니다 :
-
mempty
는 빈Map
, 즉Map.empty
와Map.empty
-
m1 <> m2
왼쪽 바이어스 조합 인m1
과m2
의 키가 모두 존재하는 경우, 즉,m1
및m2
, 다음의 값m1
고른된다m1 <> m2
. 이 작업은 외부로 볼 수 있습니다Monoid
같은 인스턴스를Map.union
.
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow