[Haskell-beginners] help using Data.Map lookup - how to get values after the "Just" constructor

edgar klerks edgar.klerks at gmail.com
Tue Sep 21 09:15:09 EDT 2010


Hello Martin,

You have two options. You can use fromJust :: Maybe a -> a, which is a
partial function, so it can fail if the supplied value is Nothing and gives
a hard to track down exception.

Or you can use fromMaybe :: a -> Maybe a -> a,  which returns a default a in
case Maybe a = Nothing and a if Maybe a = Just a.

There is also a third: maybe :: b -> (a -> b) -> Maybe a -> b, which can be
useful in the last step of some chain of functions. Note that fromMaybe is
just (flip maybe id).

Greets,

Edgar

On Tue, Sep 21, 2010 at 3:05 PM, Martin Tomko <martin.tomko at geo.uzh.ch>wrote:

> Dear All,
> as a newbie, I am only just discovering some intricacies of haskell.
> I have a Data.Map map, and am trying the lookup function to get the value
> for a given key (it is a list in my case, btw). I am struggling to get
> access to the value, as it is constructed using Just. I know that the
> question is therefore more general then the application on Map, so I would
> be glad to get a wider picture. I Checked in Real World Haskell, btu did nto
> find and answer. In Haskell the craft of... I found the following (p263):
>
> mapValue :: (a->b)-> Maybe a -> Maybe b
> mapValue g (Just a) = Just (g a)
> mapValue g Nothing = Nothing
>
> Which is fine, but it makes the Just constructor travel through the whole
> code, which is annoying. Is there a way out? Or would that be a dirty hack?
>
> I do not quite understand the following discussion of maybe (p263-4), but
> it seems like the code suggested is able to return a value at the end...
>
> Thanks
> Martin
>
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://www.haskell.org/mailman/listinfo/beginners
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/beginners/attachments/20100921/a9cff8b0/attachment.html


More information about the Beginners mailing list