Хорошо, я пытаюсь изучить haskell. Несколько раз я публиковал вопросы, которые были проголосованы, потому что я не могу объяснить, чего я пытаюсь достичь, но я снова попытаюсь задать новый вопрос.Уберите необходимость в Data.Map в Haskell
Я нахожу фрагмент кода, который я хочу немного изменить. Вот оно:
import qualified Data.Map as M
type Dict = M.Map String String
translate :: Dict -> [String] -> [String]
translate dict words = map trans words
where
trans :: String -> String
trans w =
case M.lookup w dict of
(Just w') -> w'
Nothing -> "whatchamacallit"
testTranslation :: Dict -> IO()
testTranslation dict = do
print $ translate dict ["where", "is", "the", "colosseum"]
testInsertion :: Dict -> IO Dict
testInsertion dict = do
return $ M.insert "colosseum" "colosseo" dict
main =
let dict = M.fromList [("where", "dove"), ("is", "e"), ("the", "il")]
in do
testTranslation dict
dict' <- testInsertion dict
testTranslation dict'
putStrLn "The original dictionary is unchanged:"
testTranslation dict
Короче говоря: Он заменит elems где с нырнул, является с е и т.д., но он использует данных . Карта.
Так что мой вопрос - Есть ли способ сделать то же самое без использования Data.Map
Ответ: да, есть способ без 'Data.Map'. Но сказать, как, вы должны сказать нам, почему вы не хотите использовать его - упражнение; представление; обобщение на non-'rd'-ключи ...? – leftaroundabout
Это просто доказать другу, что есть другой способ сделать одно. – NoSense
... и я узнал, что при использовании этой библиотеки существует конфликт с функцией прелюдии поиска, работающей в списках, и нужно поставить ее перед ее работой и так далее. – NoSense