【发布时间】:2016-06-24 16:24:43
【问题描述】:
我必须用语法解析一个字符串
lazy val expr: Parser[Term ~ Option[<recursion>]] = term ~ opt(expr)
你看,它使用自己来解析子表达式。但是这种类型的结果是什么?为了重现问题,我created 有点类似的问题
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,因为我不知道如何给出确切的类型。
这些列表以某种方式定义了原型类型List[A],扩展了Cons[A](head: A, tail: List[A]) 和一些神奇的Nil。这允许列表以某种方式重复出现。但是,我该怎么办?
【问题讨论】:
标签: scala types recursive-datastructures quine