I cannot get a simple while loop to work in lisp!
(loop (while (row >= 0))
setf(row (- row 1))
(collect (findIndex row col))
The correct form of the loop is the following:
(loop while (>= row 0)
do (setf row (- row 1)) ; or better: do (decf row)
collect (findIndex row col))
For a detailed description of the loop syntax, see the manual.
If you count down, you don't need WHILE
+decrement.
Your loop goes from row - 1
down to -1
. We can write it as a FOR
loop. Here are two examples:
(loop for row-number from (1- row) downto -1
collect (find-index row-number col)))
If you want to count down from row
to 0
(here using downfrom ... to
instead of from ... downto
):
(loop for row-number downfrom row to 0
collect (find-index row-number col)))