3

可能重复:
在 Lisp 中,+ 函数实际上可以有多少个输入?

以下代码给出了“参数过多”错误:

(setf u (loop for i upto 50000 collect 1))
(apply #'+ u)

同样对于

(apply #'= u)

所以我想当用 &rest 编写 defun 时,参数的数量是有上限的。它是什么?我在这里搜索并尝试了该网站上的各个页面,但我无法弄清楚。

4

1 回答 1

5

有一个名为 CALL-ARGUMENTS-LIMIT 的常量,它为您提供了可以传递给函数的参数的上限。

但是,在您最初的示例中,您绝对可以使用 REDUCE:

(reduce #'+ u)
于 2012-08-01T09:10:26.353 回答