Why won't If[ ] evaluate?

*To*: mathgroup at yoda.physics.unc.edu*Subject*: Why won't If[ ] evaluate?*From*: jmm at umich.edu*Date*: Wed, 6 Jul 1994 15:51:17 -0700 (PDT)

I am trying to do a boolean test on each value in a vector. I have figured out how to use Map[ ] to set this up, with the return equal to a list of the individual tests. But when I do this, I get a list of If[ ] statements, rather than a list of the results of evaluating those If[ ] statements. Here is the code: In[41]:= jlist = {1,-1}; Map[If[# > 0,1,0],jlist] If[jlist[[1]] > 0,1,0] Out[42]= {If[#1 > 0, 1, 0][1], If[#1 > 0, 1, 0][-1]} Out[43]= 1 What I want Out[42] to look like is simply {1,0}, the results of evaluating the two If[ ] expressions. I've tried wrapping Evaluate[ ] around the If[ ], and wrapping it around the first argument of If[ ] (i.e., Evaluate[# > 0]), but neither worked. What am I missing here? -- Prof. Jeff MacKie-Mason Dept. of Economics Jan-July 28 '94: California Energy Institute Univ. of Michigan 2539 Channing Way Ann Arbor, MI 48109-1220 Berkeley, CA 94720 internet: jmm at umich.edu phone: 510-642-3570 fax: 510-642-3570