Re: how to avoid this evaluation?
- To: mathgroup at smc.vnet.net
- Subject: [mg37408] Re: how to avoid this evaluation?
- From: arrayan137 at yahoo.com (elcofres)
- Date: Sat, 26 Oct 2002 02:04:44 -0400 (EDT)
- References: <email@example.com> <firstname.lastname@example.org>
- Sender: owner-wri-mathgroup at wolfram.com
I tried with SetAttributes[MyFunction, HoldRest] and SetAttributes[MyFunction, HoldAll] but the problem is that the main loop replaces the symbol 'a' with its value. For example for a = x^2; f[x_] := Print[x]; SetAttributes[f, HoldAll]; f[a] gives x^2 I'd like to get something like a = x^2 or just the symbol "a". I looked at the attributes of Definition and FullDefinition, but they have just HoldAll and Protected. Maybe they are special in some sense, and the main loop knows not to replace the argument with its value. Elcofres "Allan Hayes" <hay at haystack.demon.co.uk> wrote in message news:<ap85i8$50p$1 at smc.vnet.net>... > > MyFunction[a] > > > > and within MyFunction some variable gets assigned with a=x^2 (and not > > just with x^2). Is there a way of doing this? I don't like having to > > write MyFunction["a"]. In some way Save seems to know how to tell the > > system not to replace 'a' with its value. > > > Save has the attribute HoldRest, you can attach this to MyFunction with > > SetAttributes[MyFunction, HoldRest] > > -- > Allan > > --------------------- > Allan Hayes > Mathematica Training and Consulting > Leicester UK > www.haystack.demon.co.uk > hay at haystack.demon.co.uk > Voice: +44 (0)116 271 4198 > Fax: +44 (0)870 164 0565 >