如何运行Clojure文件?

9 ubuntu clojure leiningen

我是clojure的绝对初学者.我有clojure1.6和lein(我使用ubuntu 15.04).如何运行我使用终端创建的clojure文件?有这样clojure file.clj的命令吗?我感谢您的帮助!

Mar*_*ars 10

简单的答案:

如果'clojure'是将运行Clojure的脚本或别名(通过使用适当的命令行参数运行java),并且"foo.clj"是您的Clojure源文件的名称,那么您只需输入

clojure foo.clj
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,那是因为你的路径中没有这样的脚本,但是你可以创建一个脚本,其内容如下所示:

#!/bin/sh
java -cp /usr/lib/clojure-1.6.0.jar clojure.main "$@" -r
Run Code Online (Sandbox Code Playgroud)

您需要弄清楚Clojure jar文件的位置,然后替换它-cp.使用Leiningen,你可能在〜/ .m2下有这个文件的某个版本.

如果你启动Clojure并获得REPL提示,那么你可以输入:

(load-file "foo.clj")
Run Code Online (Sandbox Code Playgroud)

要么

(load-file "<path to foo.clj>/foo.clj")
Run Code Online (Sandbox Code Playgroud)

好的答案:

见Shlomi和Daniel Compton的答案.

当您开始使用Clojure时,关于如何设置目录结构和文件名以便轻松使用Leiningen和Clojure,可能会有一些学习曲线.(如果你对Java有所了解,这有点容易.)但是,一旦你熟悉了Leiningen的project.clj文件以及如何设置源文件和命名空间(在你了解命名空间之后!),在传统的方式会让你的Clojure生活比你继续使用-m和生活更容易load-file.(Clojure非常适合开发小型或大型项目,而不是运行一次性脚本.Clojure需要很长时间才能用作脚本语言,而Leiningen需要更长的时间.)


Dan*_*ton 8

来自Leiningen的基本用法

$ lein run -m my.namespace # run the -main function of a namespace
Run Code Online (Sandbox Code Playgroud)


Shl*_*omi 5

您应该阅读Leiningen自述文件教程,或者按照您喜欢的编辑器的一些简单教程.