Evaluation of args in pure functions
- To: mathgroup at smc.vnet.net
- Subject: [mg16924] Evaluation of args in pure functions
- From: Andrea Sosso <sosso at dns.ien.it>
- Date: Thu, 8 Apr 1999 02:32:34 -0400
- Sender: owner-wri-mathgroup at wolfram.com
Hello Group: Mathematica seems to evaluate arguments in a different way, when applying pure functions rather than using the usual function form: Here is and example: >>> a) Usual form In[1]:=Unevaluated[ Simplify[1 + 2 x + x^2] ] 2 Out[5]=Unevaluated[ Simplify[1 + 2 x + x ]] >>> b) Pure function @ In[2]:=Unevaluated[#]& @ Simplify[1 + 2 x + x^2] 2 Out[2]=Unevaluated[(1 + x) ] The trace confirms evaluation order is different in these two cases: >>> A) Usual form In[3]:=Trace[ Unevaluated[ Simplify[1 + 2 x + x^2] ] 2 2 Out[3]={Simplify[1 + 2 x + x ], (1 + x) } >>> B) Pure function @ In[4]:=Unevaluated[#]& @ Simplify[1 + 2 x + x^2] Out[4]={{#1 & , Unevaluated[#1] & }, 2 2 {Simplify[1 + 2 x + x ], (1 + x) }, 2 (Unevaluated[#1] & )[(1 + x) ], 2 Unevaluated[(1 + x) ]} Why ? And how to control evaluation in pure functions ? Thanks to anyone giving help. -- Andrea Sosso Istituto Elettrotecnico Nazionale "Galileo Ferraris" Settore Metrologia Elettrica Strada delle Cacce, 91 10135 TORINO Phone: +39 11 3919436 Fax: +39 11 3919436 / 346384 ---------------------------- E-mail:sosso at me.ien.it sand at cstv.to.cnr.it
- Follow-Ups:
- Re: Evaluation of args in pure functions
- From: "Wolf, Hartmut" <hwolf@debis.com>
- Re: Evaluation of args in pure functions