FORMAT
実際の呼び出しの前に設定された特定のグローバル変数に応じて、出力を破棄するように動的に指示する方法が必要です。に変更t
すると対処できると思いましたが、返された文字列が実際の戻り値と混同される可能性がある時点でnil
これらの呼び出しを使用できなくなるため、満足できません。FORMAT
例えば:
FORMAT に TERMINAL-IO で出力するように指示する (正常に動作する)
(let ((*the-var* t))
(FORMAT *the-var* "some text")
#|do some other stuff|#)
->"some-text"
->'return-value'
出力を破棄するように FORMAT に指示する (正常に動作する)
(let ((*the-var* nil))
(FORMAT *the-var* "some text")
#|do some other stuff|#)
->'return-value'
FORMAT に出力を破棄するように指示する (FORMAT の返された文字列が可能な戻り値と混同される可能性があるため、正常に機能しません)
(let ((*the-var* nil)) ;no return value intended//nil expected
#|do some stuff|#
(FORMAT *the-var* "some text"))
->"some text"
*the-var*
したがって、変数を「/ dev/null」ストリームに設定したり、条件句を前後に配置したりするなど、FORMATに大騒ぎせずに出力を破棄するように指示する方法があるのだろうか?