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)))