
On Mon, Dec 14, 2015 at 12:36:49PM +0000, Olumide wrote:
Hello Haskellers!
I'd appreciate help understanding the origin of the extra 'map' in 'Map.lookup lockerNumber map', from the following example taken from chapter 8 of "Learn You a Haskell for Great Good" http://learnyouahaskell.com/making-our-own-types-and-typeclasses#type-synony...
lockerLookup :: Int -> LockerMap -> Either String Code lockerLookup lockerNumber map = case Map.lookup lockerNumber map of Nothing -> [...]
Hello Olumide, `map` is just a parameter name. `Map.lookup` type is λ> :t Data.Map.lookup Data.Map.lookup :: Ord k => k -> Map k a -> Maybe a (so a key and a container, returning `Maybe a`). The name `map` for the second parameter is unfortunate because it is the same as the much loved `map` function; in this case map-the-function get shadowed by the-parameter-named-map. I hope this helps, if not fire again!