前言
?兩年多前知道cljs的存在時(shí)十分興奮,但因?yàn)楣ぷ髦懈居貌簧?,?guó)內(nèi)也沒(méi)有專門(mén)的職位于是擱置了對(duì)其的探索。而近一兩年來(lái)又刮起了函數(shù)式編程的風(fēng)潮,恰逢有幸主理新項(xiàng)目的前端架構(gòu),于是引入Ramda.js來(lái)療藉心中壓抑已久的渴望,誰(shuí)知一發(fā)不可收拾,于是拋棄所有利益的考慮,遵循內(nèi)心,好好追逐cljs一番:D
?cljs就是ClojureScript的縮寫(xiě),就是讓Clojure代碼transpile為JavaScript代碼然后運(yùn)行在瀏覽器或其他JSVM上的技術(shù)。由于宿主環(huán)境的不同,因此只能與宿主環(huán)境無(wú)關(guān)的Clojure代碼可以在JVM和JSVM間共享,并且cljs也未能完全實(shí)現(xiàn)clj中的所有語(yǔ)言特性,更何況由于JSVM是單線程因此根本就不需要clj中STM等特性呢……
?transpile為JS的函數(shù)式編程那么多(如Elm,PureScript),為什么偏要cljs呢?語(yǔ)法特別吧,有g(shù)eek的感覺(jué)吧,隨心就好:)
?本文將快速介紹cljs的語(yǔ)言基礎(chǔ),大家可以直接通過(guò)clojurescript.net的Web REPL來(lái)練練手!
注釋
?首先介紹一下注釋的寫(xiě)法,后續(xù)內(nèi)容會(huì)用到哦!
; 單行注釋 ;; 函數(shù)單行注釋 ;;; macro或defmulti單行注釋 ;;;; 命名空間單行注釋 (comment " 多行注釋 ") #! shebang相當(dāng)于;單行注釋#_ 注釋緊跟其后的表達(dá)式, 如: [1 #_2 3] 實(shí)際為[1 3],#_(defn test [x] (println x)) 則注釋了成個(gè)test函數(shù)
數(shù)據(jù)類型
標(biāo)量類型
網(wǎng)友評(píng)論