Re: unevaluated, hold, holdform
- To: mathgroup at smc.vnet.net
- Subject: [mg50939] Re: unevaluated, hold, holdform
- From: Paul Abbott <paul at physics.uwa.edu.au>
- Date: Tue, 28 Sep 2004 00:59:14 -0400 (EDT)
- Organization: The University of Western Australia
- References: <vas7uiw8wg82@legacy> <cj86l4$78b$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
In article <cj86l4$78b$1 at smc.vnet.net>, highegg at seznam.cz (highegg) wrote: > if you want to prevent an argument from evaluation, > Wrap it with the _Unevaluated_ function: > Numerator[Unevaluated[(4*x^2)/(2*x)]] > > but be careful, if you use this as a function: > f[x_]:=Numerator[Unevaluated[x]], > > f[(4*x^2)/(2*x)] won't work, the argument is pre-evaluated again! > > the best way to sort this out is to assign an argumant to the function > f: > AppendTo[Attributes[f],HoldAll] > > now f[(4*x^2)/(2*x)] will give us what we want! > (but note that f[x_]:=Numerator[x] still won't work!) Another way to do this is to use Function with the attribute HoldFirst: f = Function[x, Numerator[Unevaluated[x]], HoldFirst]; Cheers, Paul -- Paul Abbott Phone: +61 8 6488 2734 School of Physics, M013 Fax: +61 8 6488 1014 The University of Western Australia (CRICOS Provider No 00126G) 35 Stirling Highway Crawley WA 6009 mailto:paul at physics.uwa.edu.au AUSTRALIA http://physics.uwa.edu.au/~paul