Re: Literal
- Subject: Re: Literal
- From: uunet!cello.hpl.hp.com!jacobson
- Date: Fri, 09 Mar 90 10:33:58 PST
- Apparently-to: mathgroup-send at yoda.ncsa.uiuc.edu
jack at sun.acs.udel.edu writes: I want to define a function of Mathematica built-in function. I can do this but to evaluate it seems a little awkward. I must be doing something wrong!? In[1]:= f[Literal[Integrate[g_,x_]]]:=Integrate[g,x] + Sin[x] r[t_]:=t^3 ... In[9]:= f[Integrate[r[t],t]] 4 t Out[9]= f[--] 4 The problem has nothing to do with literal, but rather with the fact that f[] evaluates its argument. Since Integrate[r[t],t] evaluates to t^4/4, all f ever gets to see is f[t^4/4], and that won't evaluate, so that is what it gives you. If before defining f you make f have the HoldAll attribute, everything will work fine. ---------------------- In[1]:= SetAttributes[f,HoldAll] In[2]:= f[Literal[Integrate[g_,x_]]]:=Integrate[g,x] + Sin[x] In[3]:= r[t_] := t^3 In[4]:= f[Integrate[r[t],t]] 4 t Out[4]= -- + Sin[t] 4 --------------- -- David Jacobson