Clojure

動態開發

首先,Clojure 是動態的。這表示 Clojure 程式不僅是編譯和執行,而是可以互動的。Clojure 不是語言抽象,而是一個環境,其中幾乎所有語言建構都是具體化的,因此可以檢查和變更。這與執行程式、檢查其結果(或失敗)並重試的體驗截然不同。特別是,您可以擴充程式,載入資料、新增功能、修正錯誤、測試,而不用中斷串流。

REPL

雖然 Clojure 可以嵌入 Java 應用程式,或用作指令碼語言,但主要的程式設計介面是讀取-評估-列印-迴圈 (REPL)。這是一個簡單的控制台介面,可讓您輸入和執行指令,並檢查其結果。您可以像這樣啟動 Clojure REPL,然後按照此功能導覽中的範例

java -cp clojure.jar clojure.main

這會提供類似這樣的提示

user=>

大多數 Clojure 指令採用 (指令 參數*) 格式。試試看

(def x 6)
-> #'user/x
(def y 36)
-> #'user/y
(+ x y)
-> 42

基礎

Clojure 具有任意精度的整數、字串、比率、雙精度浮點數、字元、符號、關鍵字。

(* 12345678 12345678)
-> 152415765279684
"string"
-> "string"
22/7
-> 22/7
3.14159
-> 3.14159
\a
-> \a
'symbol
-> symbol
:keyword
-> :keyword
;a comment

動態編譯

Clojure 是一種編譯語言,因此您可能會好奇何時必須執行編譯器。您不必執行。您輸入 REPL 或使用 load-file 載入的任何內容都會自動即時編譯為 JVM 位元組碼。也可以提前編譯,但不是必要的。