前言
?兩年多前知道cljs的存在時(shí)十分興奮,但因?yàn)楣ぷ髦懈居貌簧希瑖鴥?nèi)也沒有專門的職位于是擱置了對其的探索。而近一兩年來又刮起了函數(shù)式編程的風(fēng)潮,恰逢有幸主理新項(xiàng)目的前端架構(gòu),于是引入Ramda.js來療藉心中壓抑已久的渴望,誰知一發(fā)不可收拾,于是拋棄所有利益的考慮,遵循內(nèi)心,好好追逐cljs一番:D
?cljs就是ClojureScript的縮寫,就是讓Clojure代碼transpile為JavaScript代碼然后運(yùn)行在瀏覽器或其他JSVM上的技術(shù)。由于宿主環(huán)境的不同,因此只能與宿主環(huán)境無關(guān)的Clojure代碼可以在JVM和JSVM間共享,并且cljs也未能完全實(shí)現(xiàn)clj中的所有語言特性,更何況由于JSVM是單線程因此根本就不需要clj中STM等特性呢……
?transpile為JS的函數(shù)式編程那么多(如Elm,PureScript),為什么偏要cljs呢?語法特別吧,有g(shù)eek的感覺吧,隨心就好:)
?本文將快速介紹cljs的語言基礎(chǔ),大家可以直接通過clojurescript.net的Web REPL來練練手!
注釋
?首先介紹一下注釋的寫法,后續(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)友評論