Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 如何在LISP中执行while循环_Loops_While Loop_Lisp_Common Lisp - Fatal编程技术网

Loops 如何在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

我无法在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 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)))