天天看點

Clojure介紹

版權聲明:本文為部落客chszs的原創文章,未經部落客允許不得轉載。 https://blog.csdn.net/chszs/article/details/3455011

Clojure介紹

Clojure是一個在Java虛拟機上運作的動态函數式程式設計語言,其文法源于Lisp語言,在Java虛拟機上運作時會編譯成位元組碼,再運作。

Clojure堅持函數式程式設計風格,簡化了多線程程式設計。Clojure堅持code-as-data程式設計哲學,自身帶複雜的Lisp宏系統。

Clojure的作者是Rich Hickey。

Clojure類似于其它的Lisp,Clojure的文法建立在S-expressions,在編譯前首先被讀入器(Reader)解析成資料結構,Clojure的讀入器支援字面文法如映射(map)、集合(set)以及矢量(vector)。除了清單(list),list文法将直接送出編譯器。換句話說,Clojure編譯器不編譯list資料結構,其它的類型都支援。

Clojure是Lisp-1,與其它的Lisp變種并不完全相容。

Clojure的語言特征:

1)用read-eval-print循環動态開發

2)提供豐富的資料結構集

3)通過software transactional memory 并行程式設計

4)Java相容:Clojure可從Java庫調用本地方法,Java程式能調用Clojure函數

5)Clojure是一個編譯的語言,産生JVM位元組碼。