前言
?兩年多前知道cljs的存在時十分興奮,但因為工作中根本用不上,國內(nèi)也沒有專門的職位于是擱置了對其的探索。而近一兩年來又刮起了函數(shù)式編程的風潮,恰逢有幸主理新項目的前端架構(gòu),于是引入Ramda.js來療藉心中壓抑已久的渴望,誰知一發(fā)不可收拾,于是拋棄所有利益的考慮,遵循內(nèi)心,好好追逐cljs一番:D
?cljs就是ClojureScript的縮寫,就是讓Clojure代碼transpile為JavaScript代碼然后運行在瀏覽器或其他JSVM上的技術(shù)。由于宿主環(huán)境的不同,因此只能與宿主環(huán)境無關(guān)的Clojure代碼可以在JVM和JSVM間共享,并且cljs也未能完全實現(xiàn)clj中的所有語言特性,更何況由于JSVM是單線程因此根本就不需要clj中STM等特性呢……
?transpile為JS的函數(shù)式編程那么多(如Elm,PureScript),為什么偏要cljs呢?語法特別吧,有g(shù)eek的感覺吧,隨心就好:)
?本文將快速介紹cljs的語言基礎(chǔ),大家可以直接通過clojurescript.net的Web REPL來練練手!
注釋
?首先介紹一下注釋的寫法,后續(xù)內(nèi)容會用到哦!
; 單行注釋 ;; 函數(shù)單行注釋 ;;; macro或defmulti單行注釋 ;;;; 命名空間單行注釋 (comment " 多行注釋 ") #! shebang相當于;單行注釋#_ 注釋緊跟其后的表達式, 如: [1 #_2 3] 實際為[1 3],#_(defn test [x] (println x)) 則注釋了成個test函數(shù)
數(shù)據(jù)類型
標量類型
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26