Saving all user-defined variables
- To: mathgroup at christensen.cybernetics.net
- Subject: [mg489] Saving all user-defined variables
- From: Ed_Donley <HEDONLEY at grove.iup.edu>
- Date: Thu, 23 Feb 1995 17:37:06 -0500 (EST)
I would like to save all user-defined variables to a file. Dump will save the *entire* state of a Mathematica session, including system-defined variables. I would like to use Contexts and Save to only save variables in contexts that typical users are likely to modify. My attempt, shown below, doesn't work because Save expects all but its first argument to be of type Symbol. In my code, userVariables is a list of Strings rather than a list of Symbols. How do I change a String head to a Symbol head? Or if this cannot be done, is there some other way to save all user-defined variables? Speed and disk space are issues, so I do not want to use Dump. I thought I remembered seeing an answer to this question several years ago, so I searched through the MathGroup archives. Unfortunately, it came up empty. (* First create some user-defined variables *) In[1] := x = 3; y = 4; z = 5; newcontext`x = 6; newcontext`y = 7; In[6] := contexts = Contexts[] Out[6] = {"DSolve`", "FE`", "Format`", "Global`", "Graphics`Animation`", "Graphics`Private`", "Integrate`", "Limit`", "newcontext`", "NullSpace`", "Obsolete`", "Series`", "Solve`", "System`", "System`ComplexExpand`", "System`Private`"} In[7] := systemContexts = {"DSolve`", "FE`", "Format`", "Graphics`Animation`", "Graphics`Private`", "Integrate`", "Limit`", "NullSpace`", "Obsolete`", "Series`", "Solve`", "System`", "System`ComplexExpand`", "System`Private`"}; In[8] := userContexts = Complement[contexts, systemContexts] Out[8] = {"Global`", "newcontext`"} In[9] := userVariables = Complement[ Flatten[Map[Names[StringJoin[#,"*"]]&, userContexts]], {"contexts","systemContexts","userContexts", "userVariables"} ] Out[9] = {"newcontext`x", "newcontext`y", "x", "y", "z"} In[10] := Apply[Save, Prepend[userVariables, "savefile"]] Save::sym: Argument newcontext`x at position 2 is expected to be a symbol. Out[10] = Save["savefile", "newcontext`x", "newcontext`y", "x", "y", "z"] Thanks for your help, Ed Donley Mathematics Department Indiana University of Pennsylvania Indiana, PA 15705 U.S.A. hedonley at grove.iup.edu http://www.ma.iup.edu/MathDept/Professors/HDonley.html