我刚刚开始学习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具有比仅在终端命令提示符处运行整个脚本的交互式环境。
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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句