シンボル(およびそのコンテキスト)は、解析ではなく評価時に作成されます。 $ NewSymbol
を使用すると、これは実際にはわかります。
$NewSymbol=Print["Name: ",#1," Context: ",#2]&;
Print["first"];
test1;
Print["last"]
(Print["first"];
test2;
Print["last"])
最初のものが印刷されます:
first
Name: test1 Context: Global`
last
セル内の各行が別々の入力として扱われるためです。 2つ目はカッコを使用して3行すべてを1つの入力とみなして印刷する
Name: test2 Context: Global`
first
last
評価が行われる前に test2
が Global`
コンテキストで作成されていることがわかります。
私はこれで作業する最も簡単な方法は、あなたのシンボルに明示的なコンテキストを使うことです: cc`x = 1
。