[Haskell-beginners] mayBe stuck
aditya.siram at gmail.com
Thu Aug 5 18:31:48 EDT 2010
This is happening because findIndex has the signature:
(a -> Bool) -> [a] -> Maybe Int
>From this we know that 'findIndex' can return a 'Just Int' or 'Nothing'.
GHC is telling you that you need to handle the case where the list element
you ask for does not exist and findIndex returns 'Nothing'.
The functions in the Maybe module may be of some help here.
On Thu, Aug 5, 2010 at 5:22 PM, prad <prad at towardsfreedom.com> wrote:
> i'm trying to create my own split function with % as delimiter.
> so i have
> eqD = (=='%')
> and send
> let s = "zaoeu%aeuasnt%staashaeu%nthdanoe%nthd"
> putStrLn $ show $ brS (findIndex eqD s) s
> to a function brS:
> brS i ss
> | isNothing i = ss
> | otherwise = (take i ss) : (brS newIndex newStr)
> newIndex = findIndex eqD newStr
> newStr = drop (i+1) ss
> but get the following error:
> Couldn't match expected type `Maybe a' against inferred type `Int'
> In the first argument of `isNothing', namely `i'
> In the expression: isNothing i :: mayBe a
> In a stmt of a pattern guard for
> the definition of `brS':
> isNothing i :: mayBe a
> my understanding is that i need the isNothing because findIndex will
> return Just Int or Nothing.
> however, i'm not sure how to resolve what seems to me to be an issue
> between a Maybe and an Int.
> In friendship,
> ... with you on your journey
> Towards Freedom
> http://www.towardsfreedom.com (website)
> Information, Inspiration, Imagination - truly a site for soaring I's
> Beginners mailing list
> Beginners at haskell.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Beginners