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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.