【发布时间】:2016-10-28 15:53:56
【问题描述】:
我正在研究 Scala 中的函数式编程,前几章定义了这种类型的数据结构:
sealed trait List[+A]
case object Nil extends List[Nothing]
case class Cons[+A](head: A, tail: List[A]) extends List[A]
当我尝试像这样定义一个链表时;它按预期工作:
val nums: List[Int] = Cons(1, Cons(2, Cons(3, Nil)));
然而,我试图定义这样的链表,但出现编译错误(scala.collection.immutable.List[Int] 类型的表达式不符合预期的 List[Int] 类型:
val nums: List[Int] = List[Int](1, 2, 3)
我的问题是 - 1) 声明数据结构会修改 List 的内部类吗? 2)为什么不能使用第二种结构?
【问题讨论】:
标签: scala functional-programming