簡體   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