Необходимо вставить в макросе кусок кода, который либо вставляется, либо опускается в зависимости от заданного ключа.
(defmacro foo (&key (var 0 var-p))
`(,(if var-p var 'clear-space)))
(foo :var 1)
Собственно совсем не понимаю как сделать в приведёном выше примери clear-space истинно пустым местом, кроме как раскидать всё на 2 ветки в самом начале, так как это было бы сильно не желатильно в виду сильного разрастания кода. Может есть какой-то символ разделитель, или метод?