Вопросы по теме '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