Интересно, как я могу напечатать в LISP каждое новое значение из цикла "for" в новом списке, который каждый раз создает путем вызова функции.
Я создал функцию:
(defun make (id name surname) (list :id id :name name :surname surname) )
Здесь я создал глобальную переменную:
(defvar *db* nil)
И здесь я определил функцию добавления каждого нового значения для сохранения его в БД:
(defun add (cd) (push cd *db*))
Итак, я могу добавлять все новые данные в БД, вот так:
(add (make 0 "Oleg" "Orlov" ) )
Чтобы посмотреть содержимое моей БД, я могу использовать:
*db*
Итак, мне интересно, как поместить каждый новый список записей в db с помощью цикла "for", я печатаю значения в цикле "for" в lisp следующим образом:
(loop for i from 1 to 10 do ( ... ))
Если я использую:
(loop for i from 0 to 10 do (add (make i "Oleg" "Orlov") ) )
Если вы прочитаете db с помощью *db*
, вы увидите, что все записи evelen были добавлены, но после вызова последней строки вы получите результат NIL в ответ.
Почемупоймать результат NIL, а не T и что это значит?
Спасибо, с наилучшими пожеланиями!