引數和 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)))