[Haskell-beginners] Non-exhaustive patterns

Brody Berg brodyberg at gmail.com
Sat Nov 18 17:48:11 UTC 2017


Made some changes to replaceThe to handle the possibility of empty list:

replaceThe :: String -> String
replaceThe word = go $ words word
   where
      go [] = “”
      go (x:xs) =
         case (notThe x) of
            Just x -> x ++ “ “ ++ go xs
            Nothing -> “ a “ ++ go xs

Typed this on a phone, sorry

On Sat, Nov 18, 2017 at 09:16 Jim <jimbo4350 at gmail.com> wrote:

> Hey guys,
>
> Thiis is my function below:
>
> notThe :: String -> Maybe String
> notThe word
>        | word /= "the" = Just word
>        | word == [] = Just []
>        | otherwise = Nothing
>
> replaceThe :: String -> String
> replaceThe word = go (words word)
>        where go (x:xs)
>                | notThe x == Just [] = []
>                | notThe x == Just word = word ++ go xs
>                | notThe word == Nothing = " a " ++ go xs
>
>
>  > replaceThe "what"
> "what*** Exception: chap12.hs:(13,13)-(16,55): Non-exhaustive patterns
> in function go
>
> I thought I covered all the potential patterns in my replaceThe
> function. I'm not sure what pattern I've missed, any thoughts?
>
> Best regards,
>
> Jim
>
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/beginners/attachments/20171118/526bfdbb/attachment.html>


More information about the Beginners mailing list