MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Re: Re: Bug Report - Two numerical values for a same variable

  • To: mathgroup at
  • Subject: [mg54317] Re: [mg54300] Re: [mg54271] Re: Bug Report - Two numerical values for a same variable
  • From: Andrzej Kozlowski <akoz at>
  • Date: Thu, 17 Feb 2005 10:30:38 -0500 (EST)
  • References: <00ed01c512b0$2f242850$6400a8c0@Main> <curpbn$r28$> <> <>
  • Sender: owner-wri-mathgroup at

The reasons why Rational[2,3] or Complex[2,3] are atoms are nor really 
mathematical but come from considering the structure of expressions in 
the Mathematica language and way expressions are transformed by various 
structured operations. To see what I mean consider the following list

ls = {1, 2, 3/4, 5 + 6*I, Rational[a, b]};

Note that 3/4 evaluates to the atom Rational[3,4] but Rational[a,b] is 
not an atom and is actually meaningless.
I think most people would agree that we would like all the numbers 
1.2,3/4 and 5+6I to be treated "in the same way" by various structured 
operations that accept level specifications, such as like Map, Apply  
etc. This is indeed the case. Consider

Map[g, ls, -1]

{g[1], g[2], g[3/4], g[5 + 6*I], g[Rational[g[a], g[b]]]}

You can see the difference between the treatment of the atomic 
Rational[3,4] (or Complex[5,6]) and non-atomic Rational[a,b]. This and 
similar reasons justify treating Rational[3,4] and Complex[5,6] as 
atoms. This is a quite different issue from the one whether  rationals 
or complex numbers are in some mathematical sense "atoms" or not. A 
case can be made both for the "yes" and the "no" answer, but it has 
nothing to do with the reason why in Mathematica Rational[2,3] and 
Complex[5,6] are atoms.

Andrzej Kozlowski

On 16 Feb 2005, at 20:36, Murray Eisenberg wrote:

> The manipulations below are precisely what's so confusing about 
> Rational
> objects (and Complex objects) being atoms.  If
>    1/2 /. Rational[x_, 2] -> Rational[x, 7]
> works, then why not the following?
>    Part[Rational[1, 2], 2]
> I can "believe" that integers and reals (and maybe strings) are atoms;
> but believing that rationals and complex numbers are atoms is a hard
> thing to swallow!
> This has always bothered me -- and hence given me trouble trying to, 
> um,
> rationalize this to students when I've taught Mathematica.
> Scott Hemphill wrote:
>> DrBob <drbob at> writes:
>>> That explains it, but only in the sense that "things fall down" is a 
>>> theory of gravity. Why should Rationals be atomic, for goodness 
>>> sake? And how did I use Mathematica all this time without hearing 
>>> about it?
>>> Sigh...
>> In[1]:= FullForm[1/2]
>> Out[1]//FullForm= Rational[1, 2]
>> In[2]:= 1/2 /. Rational[x_,2] -> Rational[x,7]
>>         1
>> Out[2]= -
>>         7
>> Scott
> -- 
> Murray Eisenberg                     murray at
> Mathematics & Statistics Dept.
> Lederle Graduate Research Tower      phone 413 549-1020 (H)
> University of Massachusetts                413 545-2859 (W)
> 710 North Pleasant Street            fax   413 545-1801
> Amherst, MA 01003-9305

  • Prev by Date: error mesages
  • Next by Date: Re: Missing Graphics
  • Previous by thread: Re: Re: Re: Re: Bug Report - Two numerical values for a same variable
  • Next by thread: Re: Re: Re: Bug Report - Two numerical values for a same variable