iT邦幫忙

2023 iThome 鐵人賽

DAY 3
0
自我挑戰組

從零開始的 clojure系列 第 3

Day 3 Clojure Syntax - Forms

  • 分享至 

  • xImage
  •  

大家好,我是對於 Clojure 一無所知的菜鳥小白工程師。

要學習 Clojure,就先從語法下手吧!

以下內容主要來自 Do Things: A Clojure Crash Course of Clojure for the Brave and True

前言

我們在 Day 2 有提到,Clojure 是屬於 Lisp 家族的語言。

Clojure 與所有的 Lisp 語言一樣,有著統一的結構,外觀上看起來是一大堆的括號。

我們可以在 Try Clojure 上,寫一些簡單的 Clojure 語法:

Forms

所有的 Clojure 程式碼都以統一的結構書寫。

Clojure 可以辨識兩種結構:

  1. 資料結構的表述(Literal representations of data structures)。
    EX: 數字(numbers)、字串(strings)、映射(maps)和向量(vectors)
  2. 運算(Operations

Clojure 中的 Forms

我們通常使用 form 來指稱 Clojure 中有效的程式碼,有時也會使用 expression 來稱呼 Clojure 中的 forms。

  • Clojure 會計算每個 form 以產生一個值。

  • 以下這些表述都是有效的 form:

    1                             ; numbers
    "a string"                    ; strings
    ["a" "vector" "of" "strings"] ; vectors
    
    ;; p.s 在 Clojure 中,使用 ; 註解程式碼
    

Clojure 中的 Operations

Operations 是指執行操作的方式。

所有 Operations / 運算都有以下形式:開括號 (、運算子、運算元、關括號 )形式如下:

(operator operand1 operand2 ... operandn)

另外,要注意 Clojure 使用空格來分隔運算元,並將逗號視為空格。以下是一些例子:

(+ 1 2 3)
; => 6

(str "It was the panda " "in the library " "with a dust buster")
; => "It was the panda in the library with a dust buster"

以上兩個例子,第一個是數字相加,第二個是字串相加,他們都是有效的 Forms。

結語

我們來複習一下:

  • 在 Clojure 中,我們使用 Forms 來指稱有效的程式碼。
  • 有效的 Forms 包含表述的資料結構,以及有效的 Operation / 運算。

關於 Opeations,有幾個特點可以先記住:

  • 運算子先行。
  • 一定要使用括號包住。
  • 使用空格分隔運算元,並將逗號視為空格。

參考文章


上一篇
Day 2 初識 Clojure
下一篇
Day 4 Clojure Control Flow- if
系列文
從零開始的 clojure23
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言