Re: Bug in Default or Bug in My Understanding?
- To: mathgroup at smc.vnet.net
- Subject: [mg89312] Re: Bug in Default or Bug in My Understanding?
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Thu, 5 Jun 2008 00:43:34 -0400 (EDT)
- Organization: The Open University, Milton Keynes, UK
- References: <firstname.lastname@example.org>
Salvatore Mangano wrote: > In:= ClearAll[f] ; > Default[f,2] = 0; > > In:= f[a_, b_.] := a + b > > In:= f > Out= 1 > > In:= (* Now change Default *) > Default[f,2] = 1; > > (* Note that Mathematica seems to recognize change *) > In:= ?f > Global`f > f[a_,b_.]:=a+b > > f/:Default[f,2]=1 > > > (* But not really! Expected 2 *) > In:= f > Out= 1 > > Even if it is a rule that you can't change the Default after the function is defined it is certainly not nice of Mathematica to allow such a change and advertise the change in the output of Definition and Information. > > I am using 188.8.131.52 on Windows XP. No bug here. The "more information" section of the online help for *Default* reads "The necessary values for Default[f] must always be defined before _. is used as an argument of f." The following works as expected: In:= ClearAll[f]; Default[f, 2] = 0; f[a_, b_.] := a + b f ClearAll[f]; Default[f, 2] = 1; f[a_, b_.] := a + b f Out= 1 Out= 2 Regards, -- Jean-Marc