ClojureScript 基本語法

2022-04-03 10:58:21 字數 1629 閱讀 5734

1

(ns example.hello) ; 命名空間23

(.log js/console "hello from clojurescript!") ; js為windows

4(.log js/console "testauthor: snake")56

; 變數

7(def foo "bar")

8(defn abc

9(let [bar 1])

10(.log js/console bar))

1112

(def ^:dynamic x 5) ;直接根目錄繫結x

13(binding [x 10]

14(.log js/console x)) ; 執行時的函式區域內的x變數

15(.log js/console x)

1617

; 陣列

18(def aarray (array 1 2 3))

19(.log js/console aarray)

20; 物件

21(def o (js-obj "foo" 1 "bar" 2))

22(.log js/console o)

2324

; 列表 集合 向量 對映 都是是這樣的形式 關鍵字替換或者字面量替換

25(def l1 (list 4 5 6))

26(def l2 '(7 9 8))

27(.log js/console l1 l2)

2829

(def v [1 2 3 4 5 6])

30(conj v 0)

31(.log js/console v)

32(.log js/console (nth v 0)) ; 提取序列第零個

3334

; 可選引數

35(defn foo [a b c] c)

36(.log js/console (foo 1) (foo 1 2 3))

3738

; 分發

39(defn foo1

40([a] 1)

41([a b] 2)

42([a b c] 3))

43 (.log js/console (foo1 1) (foo1 "a" "b") (foo1 "a" 1 "b"))

直接上一點**,個人感覺學會這些基本上可以開始寫cljs了。

對於cljs的理解就是,用clojure的語法來實現來應用到js裡面。可以配合很多。比如說我經常使用的前端框架組合:seajs+backbone+underscore+jquery+knockout,還包括一點語法糖:coffeescirpt。這次包含cljs,想必肯定會令前端工程更加有力量。

cljs的特點應該是clojure賦予它的語法,遍歷啊,資料結構啊,當然了,思想上是更可靠的。

有一點需要具備的,我感覺,如果不是很js的話,感覺會被繞暈,而不知道自己在寫什麼東西。不知道cljs學的人會不會很多。畢竟很多人覺得脫褲子放屁。個人覺得真心可以使用。而且甚至可以脫離clojure,想coffeescript那樣來使用。因為使用了clojure就是在內部實現了一套seajs框架。種種好處是越寫越感覺到。當然了。雖然是函式式風格,cljs還是對oo做了一點相容,雖然是一點,但是比js內部支援的還要強大。

Android基本Http基本通訊

關於http通訊的其實自己也不是很懂,就是略微知道一些基本的通訊方法 方法1 建立http 客戶端 httpentity entity response.getentity 得到http的內容 response.getstatusline getstatuscode 得到http的狀態返回值 res...

基本形狀 基本 SVG 文件 2

定義和組 如前一頁中定義的多邊形和漸變,預定義項的實際用法通常有兩種形式。在這兩種形式下,定義的項都通過其本地 url 或 uri 引用。象 html 頁面一樣,id 屬性建立了文件中的乙個引用點。舉例說來,這意味著 uri irisgradient 引用標識為 irisgradient 的文件部分...

EMD方法基本基本知識

emd 經驗模態分解 empirical mode decomposition,簡稱emd 方法被認為是2000年來以傅利葉變換為基礎的線性和穩態頻譜分析的乙個重大突破,該方法是依據資料自身的時間尺度特徵來進行訊號分解,無須預先設定任何基函式。這一點與建立在先驗性的諧波基函式和小波基函式上的傅利葉分...