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