Clojure是什么横缔?
以下內(nèi)容摘自百度百科:
Clojure是一種運(yùn)行在Java平臺上的 Lisp 方言铺遂,Lisp是一種以表達(dá)性和功能強(qiáng)大著稱的編程語言,但人們通常認(rèn)為它不太適合應(yīng)用于一般情況茎刚,而Clojure的出現(xiàn)徹底改變了這一現(xiàn)狀襟锐。如今,在任何具備 Java 虛擬機(jī)的地方膛锭,您都可以利用 Lisp 的強(qiáng)大功能粮坞。
作為當(dāng)今最主流的運(yùn)算平臺JVM,把函數(shù)式編程語言引入JVM也是很多人嘗試的方向初狰,Clojure就是其中之一莫杈。Clojure是一個(gè)在JVM平臺運(yùn)行的動(dòng)態(tài)函數(shù)式編程語言,其語法接近于LISP語言奢入,在JVM平臺運(yùn)行的時(shí)候筝闹,會(huì)被編譯為JVM的字節(jié)碼進(jìn)行運(yùn)算。
Clojure保持了函數(shù)式語言的主要特點(diǎn),例如immutable state关顷,F(xiàn)ull Lisp-style macro support糊秆,persistent data structures等等,并且還能夠非常方便的調(diào)用Java類庫的API议双,和Java類庫進(jìn)行良好的整合痘番。
Clojure有什么優(yōu)點(diǎn)?
Clojure簡潔且優(yōu)雅
Clojure并不是一種純函數(shù)式編程語言平痰,通常這會(huì)讓這種語言更容易為大多數(shù)人接受和學(xué)習(xí)夫偶。但它仍然是非常函數(shù)式的,這使得這種語言非常優(yōu)雅觉增,簡潔和強(qiáng)大兵拢。
使用Clojure編程,我發(fā)現(xiàn)自己會(huì)先開發(fā)出非常小且可復(fù)用的函數(shù)逾礁,然后巧妙的組合它們说铃,構(gòu)建成更大的程序。它的超級簡單的模塊化系統(tǒng)使得你非常容易的理清你的程序的模塊和它們的依賴模塊嘹履。
還有腻扇,無論何時(shí),當(dāng)我寫的接口有丑陋的地方砾嫉,或什么地方有重復(fù)的代碼幼苛,我都能明顯的感覺到,而且要去思考它焕刮,想辦法重構(gòu)它舶沿,這種語言會(huì)驅(qū)動(dòng)你尋找最佳編程方案。這跟以前的跟那些編程語言做斗爭的感受完全不一樣配并。它會(huì)幫助你實(shí)現(xiàn)最簡潔括荡、最優(yōu)雅編程策略。這對于我溉旋,一個(gè)曾大量使用過Ruby畸冲,C語言和JavaScript的程序員來說程腹,是空前的新奇的感覺嘀韧。
Clojure程序的開發(fā)流程讓人驚嘆
在我的認(rèn)識里氨菇,編程工作中一個(gè)最讓人頭疼的問題是企量,我們大量的腦力浪費(fèi)在一遍又一遍的等待程序反饋中吏砂。而用Clojure開發(fā)程序的流程解決了這個(gè)問題渠驼。如果你使用過Lisp語言庆揩,相信不會(huì)對此驚奇贸人。
使用Clojure編程婶溯,你的編輯器(可以是Vim鲸阔,Emacs偷霉,Light Table…)一直和運(yùn)行環(huán)境實(shí)時(shí)聯(lián)通。你對函數(shù)的開發(fā)褐筛、測試类少、修改能立刻得到反饋。你的大腦在編程中處于流狀態(tài)渔扎,緩慢的反饋會(huì)打斷你的邏輯思維硫狞,這是不 可接受的。這也是最喜歡Clojure的原因晃痴。
以上兩段摘自 Clojure:讓我興奮的編程語言
為什么我要選擇學(xué)習(xí)Clojure残吩?
前段時(shí)間看了篇文章,開始接觸Lisp語言倘核,搜索了下相關(guān)方言泣侮,由于Clojure和Java可以相互交互,當(dāng)然還有其他的一些優(yōu)點(diǎn)紧唱,選擇去學(xué)習(xí)了解Clojure活尊,其實(shí)現(xiàn)在概念上也比較模糊,后續(xù)應(yīng)該會(huì)詳細(xì)整理下關(guān)于Java開發(fā)者學(xué)習(xí)Lisp語言為什么選擇Clojure漏益。
繼續(xù)努力蛹锰。