我有一个课程要求我编写一个新函数 parse:: String -> Stm。Parsec 已经有一个 parse 函数,所以我应该导入合格的 parsec 以便 parse 返回我的包装函数。wrapper 函数需要将输入字符串解析为 Parsec 的 parse 函数,并从返回的 monad 中解包结果。这是我的包装函数的代码。如何确保在调用 parse 时,它返回我的包装函数。
parseString :: String -> Stm
parseString str =
case parse procParser "" str of
Left e -> error $ show e
Right r -> r