LINUX.ORG.RU

История изменений

Исправление pseudo-cat, (текущая версия) :

что-то не очень понимаю, разве раскрытие макроса это не просто синтаксическая процедура? почему символы берутся из пакета, где объявлён макрос? и как тогда сделать, чтобы не писать в других пакетах helper::it, а просто it?

cl-user> (macroexpand-1 '(aif (+ 1 2) it))

(LET ((HELPER::IT (+ 1 2)))
  (IF HELPER::IT
      IT
      NIL))
T

SOLVED: ах ну да, просто экспортировать it, тупанул

Исходная версия pseudo-cat, :

что-то не очень понимаю, разве раскрытие макроса это не просто синтаксическая процедура? почему символы берутся из пакета, где объявлён макрос? и как тогда сделать, чтобы не писать в других пакетах helper::it, а просто it?

cl-user> (macroexpand-1 '(aif (+ 1 2) it))

(LET ((HELPER::IT (+ 1 2)))
  (IF HELPER::IT
      IT
      NIL))
T