Re: explanation need!
- To: mathgroup at smc.vnet.net
- Subject: [mg73479] Re: explanation need!
- From: albert <awnl at arcor.de>
- Date: Mon, 19 Feb 2007 01:28:42 -0500 (EST)
- References: <er9co7$d89$1@smc.vnet.net>
Hi, > In[7]:= > << "Developer`" this loads the package Developer`, which normaly does two things: - load the code defined in the file Developer.m - put "Developer`" on the context path (this is actually done by the pair of BeginPackage["Developer`"] and EndPackage[]) which would usualy be part of the code in Developer.m. Anyway, Developer` is a special case, since at least in my version the definition of Developer`ClearCache is available without explicitly loading, so <<"Developer`" will only put Developer` on the context path and make available ClearCache without having to use the context explicitly. Without loading, you can in this special case just as well call Developer`ClearCache[] directly. > ClearCache[] this clears the cache, which I think is there to prevent that you could eventually get cached results from previous calls to FullSimplify or Solve which were calculated with RootReduce still active. With a fresh kernel, you would not need these two lines at all... > s3 = Block[{RootReduce}, FullSimplify[Solve[1 + x^2 + x^3 == 0]]] This will now savely "overwrite" RootReduce with a function that does nothing. > More specifically why is needed to change context first? this is necessary only so that ClearCache[] is available. > What does the function ClearCache here in particular? see above > Should the following command give a different output? > > In[10]:= > $Context > > Out[10]= > "Global`" no, loading the package (or calling the pair BeginPackage[] and EndPackage[], to be precise) will only affect $ContextPath, not $Context. The former is a list of all contexts where mathematica looks for symbols, the latter defines in which context a new symbol (that is on that was not found in $ContextPath) will be generated. Evaluating $ContextPath should show that Developer` is now on that list... hth, albert