Re: HoldForm in defined function doesn't seem to work
- To: mathgroup at smc.vnet.net
- Subject: [mg99248] Re: [mg99182] HoldForm in defined function doesn't seem to work
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Fri, 1 May 2009 05:19:44 -0400 (EDT)
- Reply-to: hanlonr at cox.net
The function needs to have the attribute HoldAll or HoldFirst f[x_] = HoldForm[x]; SetAttributes[g, HoldAll] g[x_] = HoldForm[x]; f[113 456 789] 40655592 g[113 456 789] 113 456 789 Attributes[HoldForm] {HoldAll,Protected} Bob Hanlon ---- joel.aufgang at gmail.com wrote: ============= I'm struggling to understand why this doesn't work: f[x_] = HoldForm[x]; HoldForm[123 456 789] (* returns "123 x 456 x 789" *) f[123 456 789] (* returns"44253432" *) I don't understand why the two results are different. Is there a special trick I need to do to be able to define f so that the HoldForm works? I'm using this to help visualize the way a notebook represents typed expressions, so I'm trying to do something like this: BoxTree[expr_] := TreeForm[ToBoxes[HoldForm[expr]][[1]]]; a b c d e // BoxTree 123 456 789 // BoxTree (* want this to show as a RowBox like the previous example *) Any help would be greatly appreciated. Thanks.