Re: nice Gotcha!
- To: mathgroup at smc.vnet.net
- Subject: [mg15069] Re: nice Gotcha!
- From: "Allan Hayes" <hay at haystack.demon.co.uk>
- Date: Thu, 10 Dec 1998 03:13:02 -0500
- References: <74aiui$45l@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Luc,
Two suggetions
1) use Block instead of Module
Clear[x];
test[] := Block[{x}, ToExpression["x=3"]; Print[x];] test[]
3
Print[x];
x
2) Since you seem to want a print response, stay with strings: using
StringReplace["x=3", "x=" -> ""]
3
or if you need to evaluate
a = 3;
Print[ToExpression[StringReplace["x=a", "x=" -> ""]]]
3
Barthelet, Luc wrote in message <74aiui$45l at smc.vnet.net>...
>
>Code similar to the following gave me trouble today. I thought it would
>be fun to share:
>
>Clear[x];
>test[] := Module[
> {x},
>
> ToExpression["x=3"];
> Print[x];
> ];
>test[];
>Print[x];
>
>In my version. "x" was infact the variable "Active" which is an option
>to ButtonBox and created a ton of problems. Of course I could not
>change the name (user driven, and that's why I am running a
>ToExpression on it).
>
>The solution was to not declare Active in the Module and to
>Clear[Active] in the function.
>
>any other insight?
>
>
>Luc Barthelet
>GM the day, Mayor at night
>http://www.simcity.com
>
>