参数和 Arity
可以使用零个或多个参数定义 Clojure 函数。
(defn welcome
"Without parameters"
[]
"Hello!")
(defn square
"Take one parameter"
[x]
(* x x))
(defn multiplier
"Two parameters"
[x y]
(* x y))
元数
函数所需的参数个数。函数支持 arity 重载,这意味着 Clojure 中的函数允许多个 set
参数。
(defn sum-args
;; 3 arguments
([x y z]
(+ x y z))
;; 2 arguments
([x y]
(+ x y))
;; 1 argument
([x]
(+ x 1)))
精灵们不必做同样的工作,每个人都可以做一些无关的事情:
(defn do-something
;; 2 arguments
([first second]
(str first " " second))
;; 1 argument
([x]
(* x x x)))