Возникло несколько вопросов по Macro: 1. Первый вопрос навеян топиком "(Lisp) макросы в функционалах", а именно насторожила фраза: "Макры во время компиляции выполняются, а не во время исполнения". Я как раз макры сейчас тока изучаю, я понял так, что Macro на этапе компиляции расширяется, а выполняется, когда выполняется ф-ция, в которую он входит, а если не входит ? (сам по себе). Поэтому просьба к гуру, растусуйте на примере: Например, (defmacro plus1 (x) `(+ 1 ,x)). Пусть этот макр входит в тело ф-ции (defun blabla (a b c ) ..... (plus1(b)) ...) Я так понимаю, что при компиляции ф-ции макр расширится, но не выполнится, т.к. b на этапе комп. ещё не известен. А еслиб было тоже самое, но (plus1(5)), макр вернул бы 6 при комп-ии ? А если макр отдельный, т.е. не входит в ф-ции. тогда как с аргументами ? Явно задавать надо ? В общем объясните плз. 2. Как с помощью Macro замутить FSM ? Т.е. что предлагают Lisp Macro взамен C'ым switch/case. Я так понял Macro уже являются генераторами кода на уровне комп-ии, так что должно бать достаточно просто. Если можно, простейший примерчик и вообще кошерный Lisp'овый подход к этому вопросу.

Ответ на:
комментарий
от Begemoth



Ответ на:
комментарий
от seiken

Ответ на:
комментарий
от anonymous



Ответ на:
комментарий
от bugmaker

Ответ на:
комментарий
от anonymous


Ответ на:
комментарий
от anonymous

Ответ на:
комментарий
от anonymous

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Lisp: macro, variable (2007)
- Форум [lisp]использование compiler-macro (2008)
- Форум nasm macro (2015)
- Форум mcedit, macros (2012)
- Форум [филология] Macro (2011)
- Форум OpenOffice macros (2009)
- Форум Scheme, macros (2008)
- Форум [common lisp][macro characters]Как читает лисп следующее выражение? (2010)
- Форум Asterisk + voice_recording macros (2017)
- Форум HyperSpec loop macro (2020)