When set context unique to this notebook:
ClearAll @@ { $Context<>"*" }
Clear["`*"]
can both clear the variables I assigned. I just wonder what's the difference between them? Are they interchangeable?
Mathematica Stack Exchange is a question and answer site for users of Wolfram Mathematica. It only takes a minute to sign up.
Sign up to join this communityClear
vs. ClearAll
Is answered here: Good clearing practices
$Context<>"*"
vs. "`*"
:99% of the time it is the same thing.
See tutorial/Contexts: "`name
a symbol in the current context"
See also ref / ClearAll / Examples / Applications / 2nd example
So how can it be different? If it is defined and evaluated in a different context than the context of the moment of using it. Here is an example:
BeginPackage["MyContext`"]
ClearMe[] := ClearAll @ clearSpec1;
clearSpec1 = $Context <> "*";
clearSpec2 = "`*";
EndPackage[]
Now, if you call ClearMe[]
it will correctly clear MyContext`*
even though the current context is probably Global`
. Had clearSpec2
been used you would clear Global`
.
Ok, pretty artificial example but you get the point.
ClearAll
and the other usesClear
. Fixing that, can you give an example where one of these inputs gives a different result than the other? $\endgroup$Clear
vsClearAll
or$Context<>"*"
vs"`*"
? $\endgroup$