【发布时间】:2017-03-09 23:57:39
【问题描述】:
我对 LISP 很陌生,我不知道如何让我的无限参数函数在其中一个因素为 0 时停止评估其余参数。我已经尝试过了
(defmacro smart_multiplication (&rest l)
(unless(member 0 l) `(* ,@l))
)
但我认为这不会停止乘法,直到它检查所有变量。
【问题讨论】:
-
&rest参数不是无限长的。它们可以像变量call-arguments-limit的值一样短,可以低至 50。因此,在可移植代码中,您不能假设该函数允许超过 50 个数字作为参数。