【发布时间】:2021-06-18 16:20:38
【问题描述】:
我正在尝试做这样的事情
(loop for i from 1 to 10
do (let ((fi (funcall f i)))
when (> fi 0)
collect (list i fi)))
f 的计算成本很高,所以我只想计算一次。
这不起作用,所以我在循环范围之外引入我的 fi 局部变量:
(let ((fi nil))
(loop for i from 1 to 10
do (setf fi (funcall f i))
when (> fi 0)
collect (list i fi)))
有没有完全包含在循环宏中的方法(如第一种方法)?
【问题讨论】:
-
查看如何计算中间变量:lispcookbook.github.io/cl-cookbook/…
标签: lisp common-lisp