如何定义具有可变数量参数的函数?

How to define a function with a variable number of arguments?

而不是这个:

((lambda (a b) (apply '+ (list a b)))
 1 2)

在Scheme中可以这样写:

((lambda args (apply '+ args))
 1 2)

现在可以向函数传递两个以上的参数。

当我在 Emacs Lisp 中尝试时,出现错误:无效函数。

如何在 Emacs Lisp 中定义这个函数?

在 Emacs Lisp 中,您可以将 &rest 放在函数的参数列表中,以获取剩余参数的列表:

(lambda (&rest args) (apply '+ args))