KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have a Data.Map structure that maps String s to Strings s. For whatever reason, I want to print the contents of the map in the format key: value using foldrWithKey , like so: M.foldrWithKey (\k v b -> putStrLn (k++": "++v++"\n")) (return ()) data However, only the first element of the map appears in the output (even though the map has more than one element). But when I try to construct a list using foldrWithKey and then print it, all of the elements show up: print (M.foldrWithKey (\k v b -> k:b) [] data) So, why don't the other elemnts show up when trying to perform I/O? Is it the way foldr works or is there some subtle lazy-io-related quirk that I'm missing?
Tags (comma-separated)
Save Edits
Cancel