iT邦幫忙

2023 iThome 鐵人賽

DAY 22
0
自我挑戰組

從零開始的 clojure系列 第 22

# Day 22 Clojure - Function- Function Body, and All Functions Are Created Equal

  • 分享至 

  • xImage
  •  

前言

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

今天我們要來學習函數主體 Function Body,以及去認識 Clojure 中「所有函數都是平等的」 此一概念。

try Clojure here: https://qa-mktg.codingrooms.com/compiler/clojure/

Function Body

在一個定義的函數中,Clojure 會自動返回函數主體中最後一個被計算的 forms。

而函數主體(Function Body),可以包含任何類型的 forms。

關於 Forms 的說明,請見 《Day 3 Clojure Syntax - Forms》

請看下方的例子,該函數的函數主體包含了三個 forms( (+ 1 304)30"joe" ),當我們呼叫函數時,它只會輸出最後一個 forms,也就是 "joe"

(defn illustrative-function
  []
  (+ 1 304)
  30
  "joe")

(illustrative-function)
; => "joe"

下面是另一個函數主體的例子,它使用了 if 表達式:

(defn number-comment
  [x]
  (if (> x 6)
    "哇!真是個大數字!"
    "那數字還好,我猜"))

(number-comment 5)
; => "那數字還好,我猜"

(number-comment 7)
; => "哇!真是個大數字!"

All Functions Are Created Equal

所有函數都是平等的。

根據書中的內容,我們總結以下兩點:

  1. Clojure 沒有特權函數, 所有函數都是平等的,包括基本運算符號如 + -incmap,也包含我們自己 定義的函數
  2. Clojure 不在乎這些函數是什麼,或者它來自哪裡,不論是加法、乘法還是其他運算,Clojure 只在乎 如何應用 這些函數 。

小結

今天我們學習了 函數主體(Function Body)是什麼,以及了解到在 Clojure 中「所有函數都是平等的」這樣的概念。接下來一章,我們將要學習什麼是 Anonymous Functions(匿名函數)。

參考文章


上一篇
Day 21 Clojure - Function- Destructuring
下一篇
Day 23 Clojure - Function - Anonymous Functions
系列文
從零開始的 clojure23
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言