Re: how to test where a list contains constant(s) or not
- To: mathgroup at smc.vnet.net
- Subject: [mg91996] Re: how to test where a list contains constant(s) or not
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Tue, 16 Sep 2008 19:24:35 -0400 (EDT)
- Organization: The Open University, Milton Keynes, UK
- References: <gal3iu$e0a$1@smc.vnet.net>
Aya wrote: > case1: { a, b, c, Pi } gives true because of Pi > case2: { a, b, c, 0.0001} gives true because of 0.0001 > case3: { a, b, c, 2 + Pi I } gives ture becase of 2 + Pi I > case4: { a, b, c} gives false > > is this function right ? > > ComplexQ[z_] := NumericQ[ z ] || ( NumericQ[ z ] && SameQ[ Head[ z ], > Complex] ) > IsConstantsIn[ lstList_ ] := > Module[ { intLength }, > intLength = Length@Select[ lstList, ComplexQ[ # ]& ]; > If[ intLength > 0, Return[ True ], Return[ False ] ]; > Return[ False ]; > ] > As written above, the predicate ComplexQ is equivalent to NumericQ. So you could write your function directly as follows: In[1]:= IsConstantsIn[lstList_] := If[Length@Select[lstList, NumericQ[#] &] > 0, True, False] (* Now, is this what you are looking for? I do no know. You should describe precisely what you intent to do. *) case = {{a, b, c, Pi}, {a, b, c, 0.0001}, {a, b, c, 2 + Pi I}, {a, b, c}}; IsConstantsIn /@ case Out[3]= {True, True, True, False} In[4]:= NumericQ /@ case[[4]] Out[4]= {False, False, False} In[5]:= Head /@ case[[4]] Out[5]= {Symbol, Symbol, Symbol} Regards, -- Jean-Marc