Значит постановка вопроса: есть некая переменная - t или nil.
Надо написать макрос, который будет выполнять при соблюдении некоего условия и значении переменной = nil одно действие и ставить переменную в t, при соблюдени условия и значении переменной = t другое действие, т.е. к примеру:
(if (and trigger cond) (foo))
(if (and (not trigger) cond) (progn (bar) (setq trigger t)))
и так много раз (к примеру, на входе будут списоки (cond act1 act2)
Вот макрос:
http://pastebin.com/Gv62aDN4
Там есть код и пример использования. Проблема в том, что при вызове из самого верху макрос работает, а при вызове из функции пишет ошибку. Вывод такой
A
B
*** - EVAL: variable NAME has no value
Хотя это аргумент функции как-никак. Я в лиспе новичок (точнее - у меня нет практики), так что просьба за быдлокод не пинать.
Если это важно - всё записано в файл и вызывается так - clisp test.lisp
Ответ на:
комментарий
от k_andy
Ответ на:
Если я всё правильно понял, то
от yoghurt
Ответ на:
Вариант А
от yoghurt
Ответ на:
Вариант А
от yoghurt
Ответ на:
Вариант А
от yoghurt
Ответ на:
комментарий
от different_thing
Ответ на:
комментарий
от different_thing
Ответ на:
комментарий
от different_thing
Ответ на:
Вариант Бэ
от yoghurt
Ответ на:
комментарий
от yoghurt
Ответ на:
комментарий
от k_andy
Ответ на:
комментарий
от different_thing
Ответ на:
комментарий
от yoghurt
Ответ на:
комментарий
от different_thing
Ответ на:
комментарий
от korvin_
Ответ на:
комментарий
от korvin_
Ответ на:
комментарий
от korvin_
Ответ на:
комментарий
от different_thing
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Common Lisp && Gamedev (2017)
- Форум Байтодрочерство common lisp (2015)
- Форум Mariadb, Common lisp (2022)
- Форум [common-lisp][realpath] (2011)
- Форум Стандарт Common Lisp (2009)
- Галерея Изучаем Common-Lisp (2010)
- Форум common lisp & package (2008)
- Форум Common-Lisp & octave (2008)
- Форум Стандарт Common Lisp (2007)
- Форум Practical Common Lisp (2006)