function
- To: mathgroup <mathgroup at yoda.physics.unc.edu>
 - Subject: function
 - From: HAY at leicester.ac.uk
 - Date: Sun, 25 OCT 92 00:38:11 GMT
 
     >  A question about forming functions.  Suppose I create a series, using
     >  a=Normal[Series[Sin[x],{x,0,5}]]
     >  giving a = x - x^3/3! + x^5/5!.
        
     >  I now want to use a to create a function of x, which, functionally,
     >  is
     >  f[x_]:=a.
     >  This will not work in practice.  Is there a way to do this?  For
     >  something short, as in this example
     
     >  -r. kline
     >  rvk at blink.att.com
     
 The immediate solution is to use immediate assinment ( = ) instead of 
 delayed assignment ( := ). Thus -
                                  
a=Normal[Series[Sin[x],{x,0,5}]];
f[x_] = a;
f[p]
p - p^3/6 + p^5/120
Other possibilities are (noting that Function has the attribute HoldAll)
g = Function[x,Evaluate[Normal[Series[Sin[x],{x,0,5}]]]];
g[p]
p - p^3/6 + p^5/120
h = Function[x,b]/.b->Normal[Series[Sin[x],{x,0,5}]];  (*NOT :>*)
h[p]
p - p^3/6 + p^5/120
k = Evaluate[Normal[Series[Sin[#],{#,0,5}]]]&
#1 - #1^3/6 + #1^5/120 &
k[p]
p - p^3/6 + p^5/120
From
Allan Hayes
hay at leicester.ac.uk