MathGroup Archive 2012

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: How to call 'Clear' from within a function?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg124884] Re: How to call 'Clear' from within a function?
  • From: Yves Klett <yves.klett at googlemail.com>
  • Date: Fri, 10 Feb 2012 05:58:10 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • References: <jh07qo$huj$1@smc.vnet.net>

This works just as expected if you simply use Clear[x]; instead of your
ToString construct (which throws a warning anyway to tell you something
is wrong).

Regards,
Yves

Am 09.02.2012 11:40, schrieb James Stein:
> Before trying to encapsulate 'Clear' in a function, I try this:
> 
> Clear [ x ] ;
> x
> x = 2
> Clear [ ToString [ Unevaluated [ x ] ] ] ;
> x
> 
> And I expect to get three  lines of output:   x, 2, and x
> But instead I get these three lines output:  x, 2 and 2.
> 
> What do I misunderstand, or need to know?
> 
> I observe that a function CAN obtain the name of a symbol passed to it:
> 
> ClearAll [ f ] ;
> SetAttributes [ f, HoldFirst ] ;
> f [ arg_ ] := ( Print [ Unevaluated [ arg ] ] ;
>   Clear [ ToString [ Unevaluated [ arg ] ] ] ) ;
> x = 2; (* assign a value to  'x' *)
> f [ x ] ;  (* 'f' can print the symbol 'x' ! *)
> x  (* but 'x' still has value '2' ; the 'Clear' had no effect !? *)
> 
> Similar problems with trying to call 'Set' from within a function....



  • Prev by Date: Re: Mod and QuotientRemainder are inconsistent
  • Next by Date: Baffled by FindMinimum
  • Previous by thread: Re: How to call 'Clear' from within a function?
  • Next by thread: Re: How to call 'Clear' from within a function?