我无法在lisp中获得简单的while循环!如何在LISP中执行while循环
(loop (while (row >= 0))
setf(row (- row 1))
(collect (findIndex row col))
while row is more or equal to 0我想递减行并收集findIndex方法给出的结果。 假设col是给定的。
谢谢!
我无法在lisp中获得简单的while循环!如何在LISP中执行while循环
(loop (while (row >= 0))
setf(row (- row 1))
(collect (findIndex row col))
while row is more or equal to 0我想递减行并收集findIndex方法给出的结果。 假设col是给定的。
谢谢!
环路的正确形式是以下:
(loop while (>= row 0)
do (setf row (- row 1)) ; or better: do (decf row)
collect (findIndex row col))
对于循环语法的详细说明,请参见manual。
如果你倒数,你不需要WHILE
+递减。
您的循环从row - 1
降至-1
。我们可以把它写成FOR
循环。这里有两个例子:
(loop for row-number from (1- row) downto -1
collect (find-index row-number col)))
如果你想从row
倒计时0
(这里使用的downfrom ... to
代替from ... downto
):
(loop for row-number downfrom row to 0
collect (find-index row-number col)))