20
変数の名前を印刷する[終了]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 2年前に閉店。 関数(完全なプログラムではない)を作成し、関数が引数として単一のグローバル変数(または言語に最も近いもの)で呼び出された場合、その変数の名前を出力(つまり、出力または返す)します。引数が変数ではない場合、代わりにfalsey値を出力します。(引数が変数であるがグローバルではない場合を処理する必要はありません。) 関数呼び出しと関数定義の間にコンパイル時の接続があってはなりません(特に、関数定義は、テキストまたは抽象構文ツリーではなく、ソースコードのリテラルフラグメントの形式で引数を受け取るマクロまたは同様の構成体であってはなりません。形)。つまり、個別のコンパイルをサポートする言語では、関数呼び出しが最初にコンパイルされても(関数定義の知識はないが型シグネチャまたは同等のものがあれば)プログラムが動作する必要があり、その後関数定義がコンパイルされます。言語に個別のコンパイルがない場合でも、呼び出しと定義を同様に分離する必要があります。 コンパイルされた言語を使用している場合は、ディスクから完全なプログラムのコンパイルされた形式を読み取り、プログラムがデバッグ情報を使用してコンパイルされたと見なすことができます。(したがって、プログラムからデバッガーをそれ自体にアタッチすることで機能するソリューションが許可されます。) このタスクはすべての言語で実行できるわけではないことに注意してください。 例: var apple = "Hello" p(apple) // apple var nil = "Nothing" p(nil) // nil var SOMETHING = 69 p(SOMETHING) // SOMETHING function foo(){} p(foo) // foo p(3.14159) // false p(function foo(){}) // false