2
有没有一种方法可以传递给函数的属性列表作为参数在一个类似的方式:我可以将属性列表作为&键参数传递给函数吗?
(defun sum (&key x y) (+ x y))
(sum '(:x 10 :y 20))
有没有一种方法可以传递给函数的属性列表作为参数在一个类似的方式:我可以将属性列表作为&键参数传递给函数吗?
(defun sum (&key x y) (+ x y))
(sum '(:x 10 :y 20))
要拨打与参数从列表中使用APPLY未来的功能:
CL-USER > (apply #'sum '(:x 10 :y 20))
30
而且这个工程:
CL-USER > (apply #'sum :x '(10 :y 20))
30
CL-USER > (apply #'sum :x 10 '(:y 20))
30
CL-USER > (apply #'sum :x 10 :y '(20))
30
CL-USER > (apply #'sum :x 10 :y 20 '())
30
注意变量call-arguments-limit
仍然适用。实现支持的函数调用中的参数数量通常是有限的。因此,应用具有长参数列表的函数可能无效。请注意,例如在ABCL中,此值仅为50(50)。