Search All of the Math Forum:
Views expressed in these public forums are not endorsed by
NCTM or The Math Forum.



Re: rookie code issue
Posted:
Mar 21, 2013 12:54 AM


On 3/20/13 at 4:22 AM, robholman@gmail.com wrote:
>Why doesn't the following code return a 2?
>m = Cos; Which[m == Sin, 5, m == Cos, 2]
Notice
In[3]:= Head /@ {Cos, Sin}
Out[3]= {Symbol,Symbol}
So, by using Equal, you are asking Mathematica to determine whether two symbols without assigned values are equal which it cannot do.
What you want to use here is SameQ rather than Equal. That is
In[4]:= m = Cos; Which[m === Sin, 5, m === Cos, 2]
Out[5]= 2



