Re: Re: Rule-based programming: declare variables to be a number
- To: mathgroup at smc.vnet.net
- Subject: [mg80822] Re: [mg80797] Re: Rule-based programming: declare variables to be a number
- From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
- Date: Mon, 3 Sep 2007 06:12:35 -0400 (EDT)
- References: <fb83lf$82d$1@smc.twtelecom.net> <200709020651.CAA25850@smc.twtelecom.net>
On 2 Sep 2007, at 08:51, David Bailey wrote: > As others have commented, it is not a good idea to write code like > NumericQ[g]=True because this changes the basic operation of > Mathematica. For example, such code might work OK until you try to > combine it with some more code that needs NumericQ for something else! > > David Bailey > http://www.dbaileyconsultancy.co.uk Who are the "others"? Anyway, I completely disagree with this statement in this particular context. NumericQ has clearly been designed with this in mind. Note, for example, that althou NumericQ is Protected, a definition like NumericQ[a]=True does not require unprotecting NumericQ. Moreover, it does not add a DownValue to NumericQ. NumericQ[g] = True; DownValues[NumericQ] {} There are plenty of other reasons to believe that all all theseproperties of NumericQ are designed precisely for this type of use. Besides, I have another reason to think that no probems of the kind you are imagining would happen in this case: I have been using NumericQ inprecisly this way for about 10 years in numerous notebooks without any problems. Note alo the post from Carl Woll which, I think, can be regarded as an "offcial" WRI authorization for this kind of usage ;-) (However, note also that using Carl's definition: In[19]:= g /: NumericQ[g] = True; Dos not actually add an UpValue to g: UpValues[g] {} and I don't think it has any advantage over the more straightforward NumericQ[g] = True; I am sure all this is deliberate design, and even though it may not be easy to explain, it is very convenient. Andrzej Kozlowski
- Follow-Ups:
- RE: Re: Re: Rule-based programming: declare variables to be a number
- From: "Simons, F.H." <F.H.Simons@tue.nl>
- RE: Re: Re: Rule-based programming: declare variables to be a number
- References:
- Re: Rule-based programming: declare variables to be a number
- From: David Bailey <dave@Remove_Thisdbailey.co.uk>
- Re: Rule-based programming: declare variables to be a number