clojure 参数和属性

示例

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)))