Мне любопытно, есть ли способ завершить список символов, заключенных в кавычки, точкой, следующей за введенным запятой значением.
Вот пример кода:
(defparameter *things* '(book pencil shoe))
(defun inspect-item (item things)
(if (member item things)
`(you pick up the ,item and yeet it out the window.)
`(only realize the truth... there is no ,item.)))
Это будетуспешно (print (inspect-item 'book *things*))
, и он создает список символов (YOU PICK UP THE BOOK AND YEET IT OUT THE WINDOW.)
. В этом случае я предполагаю, что точка является частью символа WINDOW.
(что подтверждается последней функцией).
Однако это не удастся (print (inspect-item 'spoon *things*))
, утверждая, что переменная ITEM.
не имеет значения (посколькуон думает, что имя item.
). Оставление пробела между элементом и периодом дает ошибку illegal end of dotted list
, которая, как я полагаю, объясняется тем, что я предполагаю, что я использую синтаксис с точечным списком.
Есть ли способ заставить его создать символ, который я хочу в конце (BOOK.
)?