如何在用户定义的命名空间中启动REPL?

vik*_*hal 12 clojure read-eval-print-loop

写入(in-ns 'dbx)文件并加载它并不会更改repl的默认命名空间(使用cygwin/console).命名空间仍然是user=>,而不是dbx=>.

vikrant[28] clj
Clojure 1.3.0
user=> (load-file "try1.clj")
#(Namespace dbx)
user=>
Run Code Online (Sandbox Code Playgroud)

我们如何在脚本文件中定义的命名空间中启动REPL?

Car*_*tes 24

如今是:repl-options {:init-ns foo.bar}.

请参阅https://github.com/technomancy/leiningen/blob/master/sample.project.clj


Abi*_*san 7

如果您使用Leiningen构建项目,请将其添加到项目的project.clj文件中:

(defproject test "1.0.0-SNAPSHOT"
  :description "FIXME: write description"
  :dependencies [[org.clojure/clojure "1.2.1"]]
  :main test.core)
Run Code Online (Sandbox Code Playgroud)

在您的src/test/core.clj文件中,添加此项以创建test.core命名空间:

(ns test.core)

(defn -main [& args])
Run Code Online (Sandbox Code Playgroud)

接下来,与Leiningen一起构建您的项目lein compile.然后输入lein repl以调用命名空间中的REPL.REPL提示符如下所示:

test.core=>
Run Code Online (Sandbox Code Playgroud)


BLU*_*IXY 1

java -cp .;clojure-1.3.0.jar; clojure.main -e \
"(ns dbx) (clojure.main/repl) (in-ns 'dbx) (clojure.core/use 'clojure.core)"
Run Code Online (Sandbox Code Playgroud)