Это результат использования списка констант в инициализаторе:
(let ((myList '(0 0 0 0 0 0)))
Измените эту строку на:
(let ((myList (list 0 0 0 0 0 0)))
и он будет вести себя так, как вы ожидаете. Первая строка приводит к выделению только один раз (так как это постоянный список), но, вызывая list
, вы заставляете выделение происходить каждый раз, когда вводится функция.
редактирование:
Это может быть полезно, особенно ближе к концу. Успешный Лисп
Ответ на этот вопрос также может быть полезным.
При этом используется ключевое слово loop
collecting
, которое собирает результаты каждой итерации в список и возвращает список в качестве значения loop
.