如何定义具有可变数量参数的函数?
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))
而不是这个:
((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))