Вопросы по теме 'lisp-macros'

Мой макрос lisp перестает работать в последней хитрости
У меня есть макрос, который я написал в 2010 году, он был для управления структурами, как в Common Lips, с использованием списков (вот весь файл, включая функции https://jcubic.pl/struct.txt ). (define-macro (defstruct name . fields) "Macro...
126 просмотров
schedule 15.11.2021

Стандартный способ обработки символа в кавычках в макросах lisp на схеме
Для некоторого кода, над которым я работал, мне нужно было обработать 'x внутри макроса. Каков стандартный способ обработки этих значений? У меня такой код: (define (quoted-symbol? x) (and (pair? x) (eq? (car x) 'quote) (symbol? (cadr x))...
62 просмотров
schedule 14.03.2022

Почему макрос оценивается при компиляции определения функции (Clozure Common Lisp)?
У меня есть: (defmacro assign (name value) (format t "assigning ~A to ~A~%" `,name `,value)) (defun opcode-call (&rest args) (mapcar (lambda (arg) (if (stringp arg) (let ((var (gensym)))...
47 просмотров
schedule 24.08.2022

Как этот синтаксис обратной кавычки работает в lisp?
Вот упрощенный пример из книги Пола Грэма On Lisp (схема похожа на синтаксис). (define-macro (bar) (let ((x 10) (y '(1 2 3)) (z 'foo)) `(list ,x `(,',z ,,@y)))) Я знаю, как должен работать ,,@y , но не уверен, как именно должен...
210 просмотров
schedule 16.01.2023

Common Lisp локально затеняет функцию с таким же именем
У меня уже не раз задавался этот вопрос. Общий вопрос Можно ли прозрачно локально затенять функцию f с помощью оболочки с тем же именем f ? То есть, как локально (f wrapped-args ...) расширяться до (f args ...)? Кажется, что Flet...
104 просмотров
schedule 15.02.2023