While they are not equal they are the same, i.e., test with SameQ (===) rather than Equal
The issue presumably arises because Which has the attribute HoldAll and this seems to cause the intended Equal test to be viewed as an equation.
m = Cos; Which[m === Sin, 5, m === Cos, 2]
On Wed, Mar 20, 2013 at 4:22 AM, <firstname.lastname@example.org> wrote: > Hi folks: > > I'm working on a bit of code in which I want students to choose a trig function from a drop-down menu, and then from there have some choices for viewing the graph. All is working fine except for one thing. There are a couple of constants that depend on the function they choose from the menu, and I'm trying to define the constant based on their choice for f. The basic issue I'm having boils down to the following question: > > Why doesn't the following code return a 2? > > > m = Cos; > Which[m == Sin, 5, m == Cos, 2] > > > > Thanks for the help! > > Rob >