iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 2
1
Software Development

擁抱 Clojure系列 第 2

[第 02 天] 擁抱 Clojure:基本組成(一)

基本組成(一)

運算式

Clojure 程式是由許多運算式 (Expression) 組合而成。在 Clojure 中,Expression (運算式) 也被稱爲 Form (形式)。一個運算式執行之後 (或叫做 Evaluate 求值),得到執行後的結果。

以 Hello World 範例程式爲例,以下是 Clojure 版本:

(str "Hello " "World")
;; => "Hello World"

以上的運算式使用列表 (List) 來表示函式呼叫,列表使用左右兩個小括號來表示。括號中分別有三個元素:符號 (Symbol) str,以及兩個字串:HelloWorld

符號 (Symbol) str,對應到 Clojure 內建的函式。Clojure 會找到這個符號對應的函式並呼叫它,執行的結果是將帶入的字串串接起來。

Clojure 與 LISP 家族跟其他語言不同的是,語法採用前置表示法 (或稱做波蘭表示法),將函式或運算元擺放在括號內的第一個位置,之後的位置則擺放各個參數。有些情況下第一個位置擺放的並非函式或運算元,這種特殊的運算式被稱爲 Special forms。

在其他非使用前置表達式的語法中,要將一連串數字相加起來會寫成:

1 + 2 + 3 + 4 + 5

而使用前置表達式的 Clojure 只要寫成:

(+ 1 2 3 4 5)

或是在其他語言中的 +* 的執行優先順序需要注意,一搞錯結果就會不一樣:

1 + 2 * 3

使用前置表達式就非常清楚,誰先處理後處理則一目瞭然:

(+ 1 (* 2 3))

資料型態

Clojure 提供跟其他主流語言類似的資料型態與資料結構,而有些則與主流程式語言不盡相同,這裡先提供大致的導覽,之後文章將會詳細介紹。

數字

Clojure 提供了跟主流語言類似的數字表示法,常用的有整數、浮點數和有理數。

整數:

42
;; => 42

浮點數:

3.14
;; => 3.14

有理數:

(/ 1 3)
;; => 1/3

字串

Clojure 的字串使用雙引號方式來表示,引號內擺放需要的文字。型態是 Java 中的字串類型 java.lang.String:

"Issac Asimov"
;; => "Issac Asimov"

字符

Clojure 表現字符 (Character) 的方式與主流程式語言稍有不同,它在欲使用的字符之前加上反斜線 (\):

\A
;; => \A
\B
;; => \B
\b
;; => \b
\a
;; => \a

除了可視字符之外,以下是其它特殊字符的使用方式:

\space
;; => \space
\newline
;; => \newline
\formfeed
;; => \formfeed
\return
;; => \return
\backspace
;; => \backspace
\tab
;; => \tab

(未完待續)


上一篇
[第 01 天] 擁抱 Clojure:前言
下一篇
[第 03 天] 擁抱 Clojure:基本組成(二)
系列文
擁抱 Clojure30

尚未有邦友留言

立即登入留言