zoukankan      html  css  js  c++  java
  • Haskell语言学习笔记(57)Parsec(4)

    Parser 类型

    data ParsecT s u m a
    type Parsec s u = ParsecT s u Identity
    type Parser = Parsec String ()
    
    • data ParsecT s u m a
      ParsecT 带四个类型参数:数据流类型 s,用户状态类型 u,底层Monad类型 m,返回类型 a。
      ParsecT 是一个Monad转换器。
    • type Parsec s u = ParsecT s u Identity
      Parsec 类型是 ParsecT 类型的特化,底层Monad类型特化为 Identity。
    • type Parser = Parsec String ()
      Parser 类型是 Parsec 类型的特化,数据流类型特化为 String,用户状态类型为空类型 ()。

    parseTest 函数

    parseTest :: (Stream s Identity t, Show a)
              => Parsec s () a -> s -> IO ()
    parseTest p input
        = case parse p "" input of
            Left err -> do putStr "parse error at "
                           print err
            Right x  -> print x
    
    • parseTest 函数调用 parse 函数对数据流进行解析。
    • 如果匹配失败,打印出错信息。
    • 如果匹配成功,输出返回值。
  • 相关阅读:
    jq ajax注册检查用户名
    jq ajax页面交互
    Digit Counting UVA – 1225
    Molar mass UVA – 1586
    P1571 眼红的Medusa
    A. Digits Sequence Dividing
    Codeforces Round #535 (Div. 3) a题
    Digit Generator UVA – 1583
    Good Bye 2018 B
    电梯 HDU – 1008
  • 原文地址:https://www.cnblogs.com/zwvista/p/8001592.html
Copyright © 2011-2022 走看看