В LOOP есть две формы, представляющие переменную RESULT.
WITH result = nil
и
COLLECT ... INTO result
Обе выше создают привязку переменной.
Я бы заменилCOLLECT с формой, которая помещает элемент в список RESULT.
(loop ...
collect item into foo
...
finally (return foo))
в
(loop with foo = nil
...
(push item foo)
...
finally (return (reverse foo)))
У вас есть другая ошибка:
FINALLY RETURN result
Синтаксис LOOPне поддерживает это.НАКОНЕЦ ожидает сложную форму.
Замените его на:
FINALLY (return result)
RETURN - это определенный макрос в Common Lisp.