Re: Re: Help with Hold
- To: mathgroup at smc.vnet.net
- Subject: [mg100963] Re: [mg100933] Re: [mg100917] Help with Hold
- From: DrMajorBob <btreat1 at austin.rr.com>
- Date: Thu, 18 Jun 2009 20:48:05 -0400 (EDT)
- References: <200906181018.GAA24553@smc.vnet.net>
- Reply-to: drmajorbob at bigfoot.com
Or: variable[Null] = False; variable[x_Symbol] = True; variable[x_] = False; SetAttributes[variable, HoldAll]; x = 1 List @@ (Hold[x, Null, y, Null, Null] /. var_?variable :> ToString[Unevaluated[var]]) 1 {"x", Null, "y", Null, Null} On Thu, 18 Jun 2009 05:18:27 -0500, John Fultz <jfultz at wolfram.com> wrote: > On Thu, 18 Jun 2009 04:52:55 -0400 (EDT), Erich Neuwirth wrote: >> How can I transform >> >> Hold[x,Null,y,Null,Null] >> into >> {"x",Null,"y",Null,Null} >> even if x and/or y have assigned values? > > Not sure if this is the most concise/clever way, but it certainly > works. I > assume here that your criteria for choosing 'x' and 'y', but not 'Null' > is that > 'x' and 'y' are symbols and in the Global` context. > > isGlobalSymbol[x_Symbol] := Context[x] === "Global`"; > isGlobalSymbol[x_] := False; > SetAttributes[isGlobalSymbol, HoldAll]; > > List @@ (Hold[x, Null, y, Null, Null] /. > var_?isGlobalSymbol :> ToString[Unevaluated[var]]) > > Sincerely, > John Fultz > jfultz at wolfram.com > User Interface Group > Wolfram Research, Inc. > > > -- DrMajorBob at bigfoot.com
- References:
- Re: Help with Hold
- From: John Fultz <jfultz@wolfram.com>
- Re: Help with Hold