【发布时间】:2011-03-23 09:15:01
【问题描述】:
我是新手 Haskell,正在学习 parsec lib 一个例子:
nesting :: Parser Int
nesting = do{ char '('
; n <- nesting
; char ')'
; m <- nesting
; return (max (n+1) m)
}
<|> return 0
那么 n 或 m 是什么?为什么 n 和 m 是 int 且大于 0?
【问题讨论】:
-
我明白了!为每个 '(' 返回 (n+1) ,所以 n 是 '(' 级别
-
顺便说一句,你既不需要花括号也不需要
;来表示 do-notation。