Вопросы с тегом «elisp-macros»

13
Макрос с defcustom приводит к ошибке «Значение символа, поскольку переменная пуста» при байтовой компиляции

В двух моих пакетах у меня есть макрос, тело которого зависит от переменной, определенной в defcustomформе. При установке пакетов из Melpa байт-компиляция заканчивается: Ошибка: значение символа в качестве переменной недействительно: my-defcustom-variable Затем вручную выполняется байтовая...

13
Макросы раскрываются при компиляции файла?

У меня есть макрос, который необходимо расширять при каждом использовании во время компиляции. Есть ли способ, которым я могу указать, чтобы это было так, не проходя через кодовую базу и тщательно оборачивая каждый вызов...

13
«И» против «когда» для условных

Это продолжение комментариев к этому ответу . Следующие биты кода кажутся эквивалентными: (and a b) (when a b) Конечно, andвы можете поставить больше условий: (and a b c d)значит(when (and a b c) d) Я склонен использовать whenтолько для выражения ветвления. Есть ли реальные различия? Лучше...

12
Когда использовать макрос или не использовать [закрыто]

Закрыто . Этот вопрос должен быть более сфокусированным . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он был сосредоточен только на одной проблеме, отредактировав этот пост . Закрыто 4 года назад . Когда я должен использовать макрос в моей...

11
Как определяется переменная область видимости для макросов?

Возьмите следующий пример макроса, определенный в macro.el. (defmacro some-macro (&rest body) `(let ((some-variable 1)) ,@body)) И возьмите следующую функцию, определенную в другом файле , function.el. (defun some-function () (some-macro (do-something))) Когда function.elбайтовая компиляция...

11
Как я могу создать несколько defuns, просматривая список?

Я работаю над оптимизацией своего конфига emacs, где я могу динамически создавать интерактивные функции для всех тем, которые есть в списке. Ниже приведен упрощенный вариант конструкции, которую я пытаюсь заставить работать. ;; List containing names of functions that I want to create (setq...

11
Как использовать пока нет ввода?

Из строки документации: Выполняйте BODY только до тех пор, пока нет ожидающих ввода. Если поступает ввод, это завершает выполнение BODY и while-no-inputвозвращает t. Выход заставляет его возвращать ноль. Если BODY завершает работу, while-no-inputвозвращает любое значение, произведенное BODY. Если я...