Используйте Parsec, чтобы написать новую функцию "parse:: String -> Stm"
У меня есть курсовая работа, которая требует от меня написать новую функцию parse:: String -> Stm. В Parsec уже есть функция parse, поэтому я должен импортировать квалифицированный parsec, чтобы parse возвращал мою функцию-обертку. Функция-обертка должна проанализировать входную строку в функции разбора Parsec и распаковать результат из возвращенной монады. Это код для моей функции-оболочки. Как я могу гарантировать, что когда parse вызывается, он возвращает мою функцию-обертку.
parseString :: String -> Stm
parseString str =
case parse procParser "" str of
Left e -> error $ show e
Right r -> r
1 ответ
Решение
Делайте именно то, что сказано в инструкции:
import qualified Text.Parsec
parse :: String -> Stm
parse str =
case Text.Parsec.parse procParser "" str of
Left e -> error $ show e
Right r -> r