beg*_*ner 1 functional-programming scala intellij-idea
我正在研究 Chiusano 的 Scala 函数式编程。在与函数式数据结构相关的第三章中,他提供了示例代码来演示单链表的概念,如清单3.1所示:
package datastructures
sealed trait List[+A]
case object Nil extends List[Nothing]
case class Cons[+A](head: A, tail: List[A]) extends List[A]
object List {
def sum(ints: List[Int]): Int = ints match {
case Nil => 0
case Cons(x, xs) => x + sum(xs)
}
def product(ds: List[Double]): Double = ds match {
case Nil => 0
case Cons(0.0, _) => 0.0
case Cons(x, xs) => x * product(xs)
}
def apply[A](as: A* ): List[A] =
if (as.isEmpty) Nil
else Cons(as.head, apply(as.tail: _*))
}
Run Code Online (Sandbox Code Playgroud)
我将此文件命名为“listing.sc”并将其保存在 /src/main/scala 中的“datastructs”包中,按照所示的附加目录结构:
我正在尝试将 List 对象导入到另一个名为 test.sc 的文件中。我有以下代码:
import datastructures.List
val ex1: List[Double] = Nil
val ex2: List[Int] = Cons(1, Nil)
val ex3: List[String] = Cons("a", Cons("b", Nil))
Run Code Online (Sandbox Code Playgroud)
但是,这会失败并出现错误:无法解析符号列表。我尝试过导入数据结构._ 但这效果不佳。
非常感谢
.sc文件是工作表文件,它是用于快速评估和测试 scala 代码的构造。
工作表源不能用作 scala 源代码。如果您想在其他类或工作表中使用代码,您应该将文件扩展名更改为.scala