Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2009

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: HoldForm in defined function doesn't seem to work

  • To: mathgroup at smc.vnet.net
  • Subject: [mg99235] Re: [mg99182] HoldForm in defined function doesn't seem to work
  • From: "Scot T. Martin" <smartin at seas.harvard.edu>
  • Date: Thu, 30 Apr 2009 06:25:01 -0400 (EDT)
  • References: <200904291037.GAA26696@smc.vnet.net>

Joel,

The problem is that Mathematica evaluates your argument BEFORE 
calling x, I believe.

This will work for you, I think.

f[x_] := FullForm[x];
f[Hold[1 3 6]]

then returns

Hold[Times[1,3,6]]


Perhaps that is what you're after....

Scot



On Wed, 29 Apr 2009, 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.
>
>


  • Prev by Date: Re: Inverse function warnings
  • Next by Date: New Wolfram Tutorial Collection documentation is ready
  • Previous by thread: HoldForm in defined function doesn't seem to work
  • Next by thread: Re: HoldForm in defined function doesn't seem to work