小编Sea*_*ean的帖子

haskell中的语法问题与数据定义有关

我正在尝试使用parsec库在haskell中实现语法,但是我遇到了预期的V问题.语法中定义的实际类型,我知道我的问题的答案无疑是简单/明显的,但是有一些我不理解的东西......

随后是数据声明的摘录(应该足以诊断):

data Expr1 = SeqOfExpr1 [Expr1]
            | Lambda Expr8 Expr1
            | List Expr2 Expr1
            | If Expr2 Expr1 Expr1
            | Expr2
              deriving (Show)

data Expr2 =  SeqOfExpr3 [Expr3]
              deriving (Show)

data Expr3 =  SeqOfExpr4 [Expr4]
              deriving (Show)
 ----------------------------Redundant Code Omitted------------------------------
expr1 :: Parser Expr1   
expr1 = declaration
      <|> list
      <|> ifStmt
      <|> expr2

declaration :: Parser Expr1
declaration =
    do  reservedOp "\\"
        var <- name
        reservedOp "->"
        expr <- expr1
        return $ Lambda var expr

list :: Parser Expr1 …
Run Code Online (Sandbox Code Playgroud)

grammar haskell parsec

1
推荐指数
1
解决办法
164
查看次数

标签 统计

grammar ×1

haskell ×1

parsec ×1