Функциональные парсеры: различия между версиями
Содержимое удалено Содержимое добавлено
Строка 59:
symbola :: Parser Char Char
symbola [] = []
symbola (x:xs)
Сразу же становится очевидным преимущество списка благоприятных исходов, потому что теперь мы можем вернуть пустой список в том случае, когда разбор невозможен (так как входная строка пуста или не начинается с символа «а»).
Строка 68:
symbol :: Eq s => s -> Parser s s
symbol a [] = []
symbol a (x:xs) | a == x
| otherwise
Как обычно существует несколько способов определить ту же самую функцию. Если вам нравятся списки, то вы возможно предпочтете следующее определение:
|