Why do I need this unused default value?
- To: mathgroup at smc.vnet.net
- Subject: [mg62713] Why do I need this unused default value?
- From: "Steven T. Hatton" <hattons at globalsymmetry.com>
- Date: Fri, 2 Dec 2005 05:53:11 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
This is based on an example from _The Mathematica GuideBook for
Programming_, section 5.2.
In[n]:= Remove[f, p];
SetAttributes[p, {OneIdentity}];
f[p[x_:"bogus"]] := {"yes",x};
f[d]
Out[n+3]:= {yes, d}
In[n]:= f[]
Out[n]:= f[]
It appears to me that the default value for x_ will never be applied.
Nonetheless, if it is absent, the pattern is not matched.
In[n]:= Remove[f, p];
SetAttributes[p, {OneIdentity}];
f[p[x_]] := {"yes", x};
f[d]
Out[n+3]:= f[d]
I really don't know how to explain what's happening with this. Can someone
else explain this behavior?
--
The Mathematica Wiki: http://www.mathematica-users.org/
Math for Comp Sci http://www.ifi.unizh.ch/math/bmwcs/master.html
Math for the WWW: http://www.w3.org/Math/