Sqrt and Listability
- To: mathgroup at smc.vnet.net
- Subject: [mg14836] Sqrt and Listability
- From: Andrzej Kozlowski <andrzej at tuins.ac.jp>
- Date: Fri, 20 Nov 1998 02:14:22 -0500
- Sender: owner-wri-mathgroup at wolfram.com
I have come across a mystery. Solving it is a matter of absolutely no importance, yet I would be grateful for any help in putting it to rest. A few days ago I was giving my introductory course in Mathematica programming and was about to explain the 'Listable' attribute of functions, when on the spur of the moment I did something one should never do and departed from my prepared plan. I just got the idea that a good way to introduce listability would be to start with some very well known function, remove the Listable attribute, and then demonstrate that it would be really desirable to have it back. Of course I could have defined my own function but at this point we had not yet got as far as defining functions so I wanted to choose something very well known. Without any tests my choice fall on Sqrt. Sqrt is of course Listable: In[1]:= Sqrt[{4,9}] Out[2]= {2, 3} One can check it's attributes explicitly: In[2]:= Attributes[Sqrt] Out[2]= {Listable,NumericFunction,Protected} Now we remove Listable: In[3]:= ClearAttributes[Sqrt,Listable] Sqrt is no longer Listable: In[4]:= Attributes[Sqrt] Out[4]= {NumericFunction,Protected} Or is it? In[5]:= Sqrt[{4,9}] Out[5]= {2,3} This was a little embarrassing. I mumbled something to the effect that one should never trust a computer program and replaced Sqrt with Sin. Now everything worked as expected. My question is: why on earth is Listablity "hard wired" into Sqrt but not in other functions, like Sin. Log etc. Is this just a accidental quirk (I wouldn't even call it a bug) which just proves my point about "never trusting a computer program" or is there something "deep" involved in this? Andrzej Kozlowski Professor of Mathematics Toyama International University Toyama, JAPAN