Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
1998
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 1998

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

Search the Archive

RE: How to use HoldForm within Module

  • To: mathgroup at smc.vnet.net
  • Subject: [mg15274] RE: [mg15259] How to use HoldForm within Module
  • From: "Ersek, Ted R" <ErsekTR at navair.navy.mil>
  • Date: Thu, 31 Dec 1998 04:39:30 -0500
  • Sender: owner-wri-mathgroup at wolfram.com

Chee wrote:
_________________

I am new to Mathematica. I need to use a function in its original form
within Module.

e.g.,doNOTCHANGE[f_]:=Module[{g},g=HoldForm[f];Print[g]]

may not give what I want as f is already rearranged according to
Mathematica's lexicographical order within Module,i.e.,HoldForm[f] in
Module may not be exactly of the same form as f as defined. One example
is f=-1(UnitStep[t-1]-UnitStep[t-2]).Can any of you out there show me
the way to get f in its original form inside Module?

_________________

Chee,

You will close to what you want if you give doNOTCHANGE the HoldAll
attribute (see below).  This way your function will not evaluate the
argument before evaluating Module and all the stuff inside.

However, you probably don't get what you want for Out[4] below, and I
can't see how you could ensure Mathematica does.


In[1]:=
SetAttributes[doNOTCHANGE,HoldAll]

In[2]:=
doNOTCHANGE[f_]:=Module[{g},g=HoldForm[f];Print[g]]

In[3]:=
doNOTCHANGE[-1(UnitStep[t-1]-UnitStep[t-2])]
-(UnitStep[t-1]-UnitStep[t-2])

In[4]:=
expr=-(UnitStep[t-1]-UnitStep[t-2]); doNOTCHANGE[expr]
expr


Cheers,
Ted Ersek


  • Prev by Date: Style sheet problem
  • Next by Date: Re: List handling
  • Previous by thread: Re: How to use HoldForm within Module
  • Next by thread: Re: How to use HoldForm within Module