繁体   English   中英

如何从终端运行Clojure程序

[英]How to run clojure program from terminal

我刚刚开始学习Clojure,并且正在使用Textmate编辑器来编写脚本。 但是,我不知道如何从终端运行它。 就像我键入clj filename.clj命令一样,但是什么也没有发生。 我是否还需要在某个位置包含函数名称,因为我有一个将数字作为参数的函数。

这是我要从终端运行的代码:

(defn next-collatz-num [n]


(if (even? n)
    (quot n 2)
    (inc (* n 3))))

(defn collatz [n]
  (take-while #(< 1 %)(iterate next-collatz-num n)))

(defn max-count-collatz [n]
  (when (> n 0)
    (first
      (reduce
        #(if (> (last %1)(last %2)) %1 %2)
          [1 1] (map #(list % (count (collatz %))) (range 1 (inc n)))))))

(max-count-collatz 999999)

尽管可以使用Clojure.jar运行单个Clojure文件,但有关Clojure的最好的事情之一是leiningen依赖项管理器和构建工具。 创建项目很容易,并且除了没有外部依赖项的单个文件之外,其他所有项目都比直接使用java和Clojure.jar有了巨大的改进。

Clojure具有比仅在终端命令提示符处运行整个脚本的交互式环境。

TL; DR,安装leiningen ,创建project.clj ,然后运行lean repl

如果您不想创建project.clj ,或者想知道如何以困难的方式进行操作,请继续阅读...

您可以使用以下命令启动Clojure read-eval-print-loop(REPL)交互式提示:

java -cp clojure-1.6.0.jar clojure.main

(在此处下载最新的Clojure jar)。

进入REPL后,加载代码文件:

(load-file "my-script.clj")

现在,您可以直接调用该函数:

(max-count-collatz 5)

如果它没有按预期工作,请更改代码,将其保存并重新加载到REPL中:

(require 'my-script :reload-all)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM