我是普通lisp的新手,因此我的问题可能非常简单,但我没有找到任何东西,也许我使用了错误的搜索条件.
我有以下问题:我有一个功能,对任意数量的参数进行特殊添加.下一步是将该函数应用于任意数量的相同大小的列表,结果将是该大小的列表.它可以工作,如果我打电话,
(mapcar #'addition list1 list2 ...)
但如果我必须定义一个功能
(defun list-add (list &rest lists)
(mapcar #'addition list lists))
,它将无法工作,因为和休息列表现在是一个列表列表.需要使用所有参数作为序列调用函数添加,因此无法进行递归调用.
有没有人有办法解决吗?
见APPLY.
另请注意CALL-ARGUMENTS-LIMIT的值.
显而易见的解决方案是:
(defun list-add (&rest lists)
(apply #'mapcar #'addition lists))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
488 次 |
| 最近记录: |