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