
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

