gpt4 book ai didi

common-lisp - 如何在Common Lisp中的宏之外拼接到列表?

转载 作者:行者123 更新时间:2023-12-03 13:24:53 25 4
gpt4 key购买 nike

说我有一个函数foo:

(defun foo (x y &rest args)
...)


我以后想用功能栏包装它:

(defun bar (x &rest args)
(foo x 100 args))


假设酒吧随后被这样称呼:(bar 50 1 2 3)

通过此设置,args是bar主体内的列表,其中包含尾随参数,因此当我将其传递给foo时,而不是获得(foo 50 100 1 2 3)的等效项时,我当然会得到(foo 50 100 '(1 2 3))。如果这些是宏,我会在bar主体内使用``(foo,x 100,@ args)`将args拼接到函数调用中。 ,@仅在反引号引起的列表中起作用。

我如何在常规函数中进行相同类型的拼接?

最佳答案

APPLY将调用其第一个参数及其后续参数,而最后一个参数必须是列表。所以:

(apply #'foo x 100 args)

关于common-lisp - 如何在Common Lisp中的宏之外拼接到列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2627262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com