[英]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.