LINUX.ORG.RU

CL: wrapper for format function


0

0
как написать обёртку для format?

например хочется что-то типа:

(defun my-debug (fmt &rest params)
  (when *debug*
    (format t fmt params)
    (force-output)))

и вызывать как:
(my-print "hello~%") -> "hello\n"
(my-print "result: ~A ~A" 4 5) -> "result: 4 5"
и т.д.
anonymous
s/my-print/my-debug/g
anonymous
()
Ответ на: комментарий от anonymous
> я же сказал, что макры пока я не трогал. :)

ты наркоман чтоле?

(defmacro my-debug (&body body) `(when *debug* (format t ,@body)))

anonymous
()
Ответ на: комментарий от anonymous
> (defun my-debug (fmt &rest params) (when *debug* (apply #'format t fmt params) (force-output)))

спасибо, тоже работает, но форма с макросом более красива.

anonymous
()
Ответ на: комментарий от kpanic
Для вышеприведённого макроса это тоже справедливо.
anonymous
()
Ответ на: комментарий от kpanic
> Например, чтобы дебаг можно было включать/отключать в рантайме.

пипец ты тупая скотина. там дебаг завязан на состоянии глобальной переменной, какая разница макрос используется или функция?

anonymous
()
Ответ на: комментарий от anonymous
Надень колокольчик, родной [;
anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.