How to call 'Clear' from within a function?

*To*: mathgroup at smc.vnet.net*Subject*: [mg124843] How to call 'Clear' from within a function?*From*: James Stein <mathgroup at stein.org>*Date*: Thu, 9 Feb 2012 05:38:00 -0500 (EST)*Delivered-to*: l-mathgroup@mail-archive0.wolfram.com

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....

**Follow-Ups**:**Re: How to call 'Clear' from within a function?***From:*Bob Hanlon <hanlonr357@gmail.com>

**Re: How to call 'Clear' from within a function?***From:*Bob Hanlon <hanlonr357@gmail.com>