How to do a while loop in LISP
我无法在Lisp中使用简单的while循环来工作!
1 2 3 | (loop (while (row >= 0)) setf(row (- row 1)) (collect (findIndex row col)) |
当行大于或等于0时,我想减少行并收集findIndex方法给出的结果。
假设给出col。
谢谢!!!
正确的循环形式如下:
1 2 3 | (loop while (>= row 0) do (setf row (- row 1)) ; or better: do (decf row) collect (findIndex row col)) |
有关循环语法的详细说明,请参见手册。
如果递减计数,则无需递减
您的循环从
1 2 | (loop for row-number from (1- row) downto -1 collect (find-index row-number col))) |
如果要从
1 2 | (loop for row-number downfrom row to 0 collect (find-index row-number col))) |