我必须用语法解析一个字符串
lazy val expr: Parser[Term ~ Option[<recursion>]] = term ~ opt(expr)
你看,它使用自己来解析子表达式。但是这种类型的结果是什么?为了重现该问题,我创建了一个类似的问题
def quine(depth: Int, result: (Any, Option[Any])): (Any, Option[Any]) =
if (depth == 0) result else {quine(depth - 1, (depth, Some(result)))}
quine(5, (true, None))
如您所见,我使用Any
了因为我不知道如何给出确切的类型。
列表以某种方式定义了 proto 类型List[A]
,扩展了Cons[A](head: A, tail: List[A])
一些魔法Nil
。这允许列表以某种方式重现。但是,在我的情况下我该怎么办?