[scala] 다른 라이브러리를 포함시킬 수 있는 REPL 환경
scala에서 REPL을 사용하려면 간단하게 scala를 실행하면 된다.
$ scala
그리고, 필요한 내부 라이브러리는 다음처럼 import문을 사용한다.
scala> import scalaz._
만약 외부 라이브러리(lib)를 어떻게 입력해야 하는가?
그러기 위해서는 sbt를 활용할 수 있다.
sbt 프로젝트에서 sbt를 실행해서 아래처럼 간단하게 사용할 수 있다. (참고로 sbt는 디렉토리 기반이기 때문에 global 설정이 아니다)
$ sbt
set scalaVersion := "2.11.8"
set libraryDependencies += "org.scalaz" %% "scalaz-core" % "7.2.0"
set initialCommands := ""
set initialCommands += "import scalaz._, Scalaz._, scala.concurrent._, scalaz.concurrent._, java.util.concurrent._"
session save
console
console을 실행하면 다음과 같은 로그가 생성된다. lib을 로딩하고,import 문이 자연스럽게 만들어진다.
[info]
import scalaz._
import Scalaz._
import scalaz.concurrent._
import java.util.concurrent._
Welcome to Scala 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_101).
Type in expressions for evaluation. Or try :help.
만약 중간에 외부 라이브러리를 읽어야 한다면, Ctrl + D를 누르고, 다시 모드 환경에서 내용을 설정한다.
ctrl + D를 눌러 REPL import문을 다시 구성할 수 있다.
scala> // 여기서 Ctrl + D
[success] Total time: 371 s...
> set initialCommands := ""
> set initialCommands += "import scalaz._, Scalaz._, scala.concurrent._, scalaz.concurrent._, java.util.concurrent._, java.util.collections._ "