Re: ClearAll ?? or what
- To: mathgroup at smc.vnet.net
- Subject: [mg102830] Re: ClearAll ?? or what
- From: Albert Retey <awnl at gmx-topmail.de>
- Date: Fri, 28 Aug 2009 05:42:52 -0400 (EDT)
- References: <h7371j$b28$1@smc.vnet.net> <h75nba$p3g$1@smc.vnet.net> <h77nb8$s5d$1@smc.vnet.net>
Hi, >> Remove["Global'*"] I just wanted to make clear it must be a ` not a ' to work at all. Just because I think this could have been the OPs actual problem. > The problem (a minor one) is that if you do this, then the first time > you execute such a notebook in a newly opened Mathematica session, you > will get the "error" message: > > Remove::rmnsm: There are no symbols matching "Global`*". >> a message is a message and an error is an error. I think this is not meant to be an error message, but a warning message, and I think it is there for good reasons: Remove is not only useful for cleaning the global namespace at the beginning of a notebook, and in other use cases you probably want to see that message. It is another question whether the formulation of the message is adequate and whether it would make sense to make error and warning messages distinguishable... > I put "error" in quotes here because (a) so far as I can see you haven't > really damaged anything by doing this, and (b) this shouldn't be called > an error in any case, at least if you live by the standard computer > science wildcard convention that "the asterisk character ("*") > substitutes for any zero or more characters". > > The history is that doing this wasn't an error through several early > versions of Mathematica. It became an error sometime around v4? > or v5?. Why? -- who knows? > > The solution, so far as I can see, is to use > > x; Remove["Global'*"] > > as the first line in all your notebooks. Can this do any harm? Not really, but there always has been a well documented way to switch of messages that you don't want to see (On and Off), and since version 6 it is even simpler to do this locally and for "expected" messages only: Quiet[Remove["Global`*"]] or, if you are very careful and don't want to miss any unexpected warning when evaluating the Remove: Quiet[Remove["Global`*"],Remove::rmnsm] hth, albert