【发布时间】:2013-11-25 17:24:43
【问题描述】:
阅读Parser Combinators 上这篇内容丰富、写得很好的文章,我看到了这段代码:
class DisParser[+A](left: Parser[A], right: Parser[A]) extends Parser[A] {
def apply(s: Stream[Character]) = left(s) match {
case res: Success => res
case _: Failure => right(s)
}
}
当我尝试编译这段代码时,我得到:
Parser.scala:19: error: class Success takes type parameters
case res: Success => res
^
one error found
鉴于Parser的签名:
case class Success[+A](value: A, rem: Stream[Character]) extends Result[A]
如何更改case res: Success => res 行以给Success 一个正确的类型参数?
【问题讨论】: