[Haskell-beginners] Non-exhaustive patterns

Brody Berg brodyberg at gmail.com
Sat Nov 18 18:46:04 UTC 2017


My complete code:

notThe :: String -> Maybe String
notThe word
  | word == "the" = Nothing
  | otherwise     = Just word

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

On Sat, Nov 18, 2017 at 9:48 AM, Brody Berg <brodyberg at gmail.com> wrote:

> 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/2121e9bc/attachment.html>


More information about the Beginners mailing list