使用解释器执行Scala代码文件

时间:2014-04-25 17:12:22

标签: scala

以下是我的示例源代码:

// Broken.scala
def fibFrom(a: Int, b: Int): Stream[Int] = a #:: fibFrom(b, a + b)
println(fibFrom(0,1).take(10).toList)

当我在解释器中单独运行这些语句时,一切正常。

scala> def fibFrom(a: Int, b: Int): Stream[Int] = a #:: fibFrom(b, a + b)
fibFrom: (a: Int, b: Int)Stream[Int]

scala> println(fibFrom(0,1).take(10).toList)
List(0, 1, 1, 2, 3, 5, 8, 13, 21, 34)

但是,当我将文件本身传递给解释器时,它会挂起。

$ scala Broken.scala
^C
$

scala -help文档表明Scala源是scala的有效输入,所以我做错了什么?

1 个答案:

答案 0 :(得分:2)

对我来说很好。我认为您可能遇到尝试启动后台编译器的scala命令的问题,这就是Scala脚本的处理方式。

这是在某些操作系统或某些安全软件/设置上发生的问题。从[1]开始:

  

您可能想要了解两件事。首先,hostname必须   解析主机的IP地址 - 即使它是127.0.0.1。第二,那里   可能是一个运行导致麻烦的fsc守护进程。尝试运行fsc -shutdown。

[1] http://grokbase.com/t/gg/scala-user/12bkn165h9/cannot-execute-hello-world-script