大家好,我是對於 Clojure 一無所知的菜鳥小白工程師。
今天我們要來學習 Defining Functions —— 如何定義函數。
try Clojure here: https://qa-mktg.codingrooms.com/compiler/clojure/
在 Clojure 中,函數的定義主要由五個主要部分組成:
defn
(定義函數的關鍵字)以下是一個函數定義的例子,以及對該函數的呼叫:
(defn too-enthusiastic
"Return a cheer that might be a bit too enthusiastic"
[name]
(str "OH. MY. GOD! " name " YOU ARE MOST DEFINITELY LIKE THE BEST "
"MAN SLASH WOMAN EVER I LOVE YOU AND WE SHOULD RUN AWAY SOMEWHERE"))
(too-enthusiastic "Zelda")
; => "OH. MY. GOD! Zelda YOU ARE MOST DEFINITELY LIKE THE BEST MAN SLASH WOMAN EVER I LOVE YOU AND WE SHOULD RUN AWAY SOMEWHERE"
在這個例子中:
defn
定義函數。
too-enthusiastic
是函數的名稱。
"Return a cheer that might be a bit too enthusiastic" 是一個描述性文檔(docstring)。
In programming, a docstring is a string literal specified in source code that is used, like a comment, to document a specific segment of code.( wiki)
後面有一個參數 name
,參數 name
在方括號中定義。
函數主體則在方括號之後,使用參數進行操作,並返回 "OH. MY. GOD! Zelda YOU ARE MOST DEFINITELY LIKE THE BEST MAN SLASH WOMAN EVER I LOVE YOU AND WE SHOULD RUN AWAY SOMEWHERE"
今天我們學習了在 clojure 中如何定義一個有效的函數,再下一章節,我們將更進一步去了解什麼是「文檔字符串」(docstring) 以及「參數和參數個數」(Parameters and Arity)。