Я пытаюсь написать синтаксический анализатор в Haskell.
Этот синтаксический анализатор принимает строку (пример: "ab c def") в параметре и возвращает Maybe (String, String).
Maybe (String, String)
Первая строка получает символы, пока она является цифрой или буквой.
Вторая строка получает остальные
В этом примере я хочу вернуть Maybe («ab c», «def»).
parseString :: String -> Maybe (String, String)
parseString "" = Nothing
parseString expr = case isString expr of
Just (char, rest) -> fmap (char:) (parseString rest)
Nothing -> Just ("", expr)
isString return:
Maybe (Char, String) -> Char = первый символ, String = rest / Nothing, если это не буква или ди git.
Проблема, я не могу вернуть оставшуюся часть String в возможных.