Ex4.1 formatの問題2
PAIPも4章に入るといよいよAIの内容に入ります。
4章ではExerciseは章末にまとまっています。
Ex4.1は章中で定義した、デバッグ用の表示関数dbgを formatディレクティブだけで表現してみようというモノです。
章中の定義は以下のように行ってました。
(defvar *dbg-ids* nil "Identifiers used by dbg") (defun dbg (id format-string &rest args) "Print debugging info if (DEBIG ID) has been specified." (when (member id *dbg-ids*) (fresh-line *debug-io*) (apply #'format *debug-io* format-string args)))
formatは先日苦労したおかげか、マニュアルを見ながらなんとか分かるようになりました。
未だに@と:の使い分けに悩みますが。
;; Exercise 4.1[m] It is possible to implement dbg using a single call to format. ;; Can you figure out the format directives to do this? (defun dbg (id format-string &rest args) "Print debugging info if (DEBIG ID) has been specified." (format *debug-io* "~:[~;~&~?~]" (member id *dbg-ids*) format-string args))