[Haskell-cafe] Getting the x out
michael rice
nowgate at yahoo.com
Wed Apr 22 09:13:33 EDT 2009
Hi Neil,
I just tried out Hoogle for the first time and it works great.
It seems there are a lot of resources available for Haskell; it just takes time to find out about them and how they work.
Thanks.
Michael
--- On Wed, 4/22/09, Neil Mitchell <ndmitchell at gmail.com> wrote:
From: Neil Mitchell <ndmitchell at gmail.com>
Subject: Re: [Haskell-cafe] Getting the x out
To: "michael rice" <nowgate at yahoo.com>
Cc: "Tony Morris" <tonymorris at gmail.com>, haskell-cafe at haskell.org
Date: Wednesday, April 22, 2009, 1:26 AM
Hi
It's not too hard. You wanted a function that converted Maybe a -> a,
you just Hoogle for it:
http://haskell.org/hoogle/?hoogle=Maybe+a+->+a
Thanks
Neil
On Wed, Apr 22, 2009 at 2:07 AM, michael rice <nowgate at yahoo.com> wrote:
> Got it! I figured there must be some way to unpack it.
>
> My goodness, there are so many functions I'm not even aware of. Has anyone
> ever counted them all?
>
> Thanks.
>
> Michael
>
> --- On Tue, 4/21/09, Tony Morris <tonymorris at gmail.com> wrote:
>
> From: Tony Morris <tonymorris at gmail.com>
> Subject: Re: [Haskell-cafe] Getting the x out
> To: "michael rice" <nowgate at yahoo.com>
> Cc: haskell-cafe at haskell.org
> Date: Tuesday, April 21, 2009, 8:54 PM
>
> You mean, the x out of *Maybe* x even. In the very literal sense, the
> assumption that there is an x in "Maybe x" is false -- there may not be
> one since it is maybe, but not necessarily, x. IT's a bit like the use
> of null that you might have seen in other languages where you might have
> a value or you might have null. What you can do however, is say "give me
> the x if there is one, otherwise, use this value".
>
> This is the fromMaybe function.
>
> Prelude Data.Maybe> let safeDivision x y = if y == 0 then Nothing else
> Just (x/y)
> Prelude Data.Maybe> 3 + (42 `fromMaybe` safeDivision 10 5)
> 5.0
> Prelude Data.Maybe> 3 + (42 `fromMaybe` safeDivision 10 0)
> 45.0
>
>
>
> michael rice wrote:
>> How do I get the x out of Just x?
>>
>> Michael
>>
>> =============
>>
>> safeDivision :: Float -> Float -> Maybe Float
>> safeDivision x y = if y == 0 then Nothing else Just (x/y)
>>
>> *Main Data.List> safeDivision 10 5
>> Just 2.0
>> *Main Data.List> 3 + (safeDivision 10 5)
>>
>> <interactive>:1:0:
>> No instance for (Num (Maybe Float))
>> arising from a use of `+' at <interactive>:1:0-22
>> Possible fix: add an instance declaration for (Num (Maybe Float))
>> In the expression: 3 + (safeDivision 10 5)
>> In the definition of `it': it = 3 + (safeDivision 10 5)
>> *Main Data.List>
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Haskell-Cafe mailing list
>> Haskell-Cafe at haskell.org
>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>
>
> --
> Tony Morris
> http://tmorris.net/
>
>
>
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20090422/0945013d/attachment.htm
More information about the Haskell-Cafe
mailing list