clojure 定义可变函数

示例

可以使用其参数列表中的符号将Clojure函数定义为采用任意数量的参数。所有剩余的参数将按顺序收集。

(defn sum [& args]
  (apply + args))

(defn sum-and-multiply [x & args]
  (* x (apply + args)))

致电:

=> (sum 1 11 23 42)
77

=> (sum-and-multiply 2 1 2 3)  ;; 2*(1+2+3)
12