>ghci> Map.lookup "катя" $ phoneBookToMap phoneBook
>["827–91-62","943–29-29","493–29-28"]
Превосходно!
Ещё примеры. Допустим, мы делаем отображение из ассоциативного списка чисел и при обнаружении повторяющегося ключа хотим, чтобы сохранилось наибольшее значение. Это можно сделать так:
>ghci> Map.fromListWith max [(2,3),(2,100),(3,29),(3,11),(4,22),(4,15)]
>fromList [(2,100),(3,29),(4,22)]
Или хотим, чтобы значения с повторяющимися ключами складывались:
>ghci> Map.fromListWith (+) [(2,3),(2,100),(3,29),(3,11),(4,22),(4,15)]
>fromList [(2,103),(3,40),(4,37)]
Ну что ж, модуль >Data.Map
, да и другие модули из стандартной библиотеки языка Haskell довольно неплохи. Далее посмотрим, как написать свой собственный модуль.