Re: Unevaluated
- To: mathgroup at smc.vnet.net
- Subject: [mg44510] Re: Unevaluated
- From: Roland Franzius <roland.franzius at uos.de>
- Date: Thu, 13 Nov 2003 02:27:01 -0500 (EST)
- Organization: Universitaet Hannover
- References: <bopcq6$op3$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hans-Peter Kunzle wrote:
> Hello,
>
> I was trying to make a function like 'tPrint[x___]' that would act
> like Print if some global variable Testing was True and do nothing
> if Testing was False. This would allow me to simply add or delete
> the 't' to individually turn on or off some tracing. It would
> be easier than to comment or uncomment the Print statements each
> time.
>
> But when I tried
>
> tPrint[Unevaluated[x___]]:= If[Testing,Print[x]]
>
> I found, using TracePrint, that 'x' gets evaluated each time whether
> or not Testing is True.
>
> Maybe I do not understand properly how Unevaluated operates.
> Is there a way to do what I want?
Your aim might be
SetAttributes[tPrint, HoldAll]
tPrint[x___] := If[Testing, Print[Unevaluated[x]]]
eg
y := Do[tPrint[Unevaluated[1 + k]], {k, 1, 5}]
Do you mean: Don't evaluate x at evaluation time of tPrint[x] and then
print x Unevaluated?
--
Roland Franzius