Неожиданная генерация макро with-gensyms - Lisp

Узнай цену своей работы

Формулировка задачи:

В чём я неправ? Почему nil? Какой должен быть формат первого аргумента?
Добро пожаловать GNU CLISP 2.49 (2010-07-07) 
[CopyRights skipped]
 
[1]> (macroexpand '(with-gensyms (x) (any form)))
(LET NIL (ANY FORM)) ;
T
[2]> (macroexpand '(with-gensyms ((x)) (any form)))
(LET NIL (ANY FORM)) ;
T

Решение задачи: «Неожиданная генерация макро with-gensyms»

textual
Листинг программы
(with-gensyms ("" x) (any form))

Объяснение кода листинга программы

В данном коде используется конструкция with-gensyms, которая генерирует уникальные символы (генсимволы) для использования в качестве локальных переменных в форме. В данном случае, генерируется один генсимвол, который присваивается переменной x. Затем, используя этот генсимвол, происходит вызов формы any form. Вот список элементов кода с их номерами:

  1. (with-gensyms (`` x) (any form)) - Описание конструкции with-gensyms и ее параметров.
  2. x - Переменная, которой присваивается генсимвол.
  3. (any form) - Вызов формы any form с использованием генсимвола x.

Оцени полезность:

7   голосов , оценка 4.286 из 5