別のモジュールを呼び出す関数またはモジュールを作成した場合、呼び出し元の関数/モジュールの名前を取得するにはどうすればよいですか? これは、デバッグ目的に役立ちます。
1 に答える
4
このStack
関数は、コールスタックにある「タグ」(目的のために「関数」と読みます) のリストを提供して、ほぼ正確にあなたが望むことを行います。StackBegin
やのような他の関数が存在するため、防弾ではありませんStackInhibit
が、それらはそもそも非常にエキゾチックです。
ほとんどの場合、Stack
評価される関数の名前を示すシンボルが返されます。これらのシンボルがどのようなコンテキストからのものであるかを把握するには、Context
関数を使用できます。これは、それらがどのパッケージの一部であるかを把握するのに最も近い方法です。ただし、シンボルは ( Get
、Import
、ToExpression
またはを介してSymbol
) パッケージに動的に追加でき、他のパッケージでも再定義または変更 (たとえば、新しい評価規則を使用) できるため、注意が必要です。
于 2009-09-14T13:45:33.780 に答える