常见的lisp如何转换其余参数列表

use*_*205 3 rest common-lisp

我是普通lisp的新手,因此我的问题可能非常简单,但我没有找到任何东西,也许我使用了错误的搜索条件.

我有以下问题:我有一个功能,对任意数量的参数进行特殊添加.下一步是将该函数应用于任意数量的相同大小的列表,结果将是该大小的列表.它可以工作,如果我打电话, (mapcar #'addition list1 list2 ...) 但如果我必须定义一个功能 (defun list-add (list &rest lists) (mapcar #'addition list lists)) ,它将无法工作,因为和休息列表现在是一个列表列表.需要使用所有参数作为序列调用函数添加,因此无法进行递归调用.

有没有人有办法解决吗?

Rai*_*wig 5

APPLY.

另请注意CALL-ARGUMENTS-LIMIT的值.

显而易见的解决方案是:

(defun list-add (&rest lists)
  (apply #'mapcar #'addition lists))
Run Code Online (Sandbox Code Playgroud)