Loops 如何在LISP中执行while循环
我无法在lisp中使用简单的while循环Loops 如何在LISP中执行while循环,loops,while-loop,lisp,common-lisp,Loops,While Loop,Lisp,Common Lisp,我无法在lisp中使用简单的while循环 (loop (while (row >= 0)) setf(row (- row 1)) (collect (findIndex row col)) 当row大于或等于0时,我想减少row并收集findIndex方法给出的结果。 假设给定了col 谢谢 循环的正确形式如下所示: (loop while (>= row 0) do (setf row (- row 1)) ; or bett
(loop (while (row >= 0))
setf(row (- row 1))
(collect (findIndex row col))
当row大于或等于0时,我想减少row并收集findIndex方法给出的结果。
假设给定了col
谢谢 循环的正确形式如下所示:
(loop while (>= row 0)
do (setf row (- row 1)) ; or better: do (decf row)
collect (findIndex row col))
有关循环语法的详细说明,请参阅。如果您倒计时,则在+递减时不需要
循环从行-1
向下到-1
。我们可以把它写成FOR
循环。以下是两个例子:
(loop for row-number from (1- row) downto -1
collect (find-index row-number col)))
如果要从行
倒计时到0
(此处使用downfrom…to
而不是from…down to
):
(loop for row-number downfrom row to 0
collect (find-index row-number col)))