共通のlispでは、関数(トレース名)を使用して関数の呼び出しに関する出力を見ることができます。(トレースする)ローカル関数をどのように記述しますか?
私の関数がローカルスコープで宣言されている場合、それをどのようにトレースするのですか?
例えば、どのように私は下に、バーをトレースします:(TRACE ...)
でローカル関数をトレース
(defun foo (x)
(labels ((bar (y) (format t "bar: ~a~&" y)))
(bar x)))
ローカル関数にはトレースがなく、ドキュメントストリングもなく、親の独立した再定義もありません。あなたはたくさんのことをあきらめます。その理由から、彼らは地元の良い理由がある方が良い:そしてその正当な理由は...ドラムロール...親の関数のレキシカル環境へのアクセスが必要なことです。上の 'bar'関数はそうではありません。トップレベルの機能として単独で機能するように、 'foo'の外に自在に移動することができます。 – Kaz