Clojure函数可以使用零个或多个参数来定义。
(defn welcome "Without parameters" [] "Hello!") (defn square "Take one parameter" [x] (* x x)) (defn multiplier "Two parameters" [x y] (* x y))
函数采用的参数数量。函数支持arity重载,这意味着Clojure中的函数允许多个“一组”参数。
(defn sum-args ;; 3 arguments ([x y z] (+ x y z)) ;; 2 arguments ([x y] (+ x y)) ;; 1 argument ([x] (+ x 1)))
Arities不必执行相同的工作,每个Arity都可以执行无关的操作:
(defn do-something ;; 2 arguments ([first second] (str first " " second)) ;; 1 argument ([x] (* x x x)))