Re: IsIntegerOrFloat
- To: mathgroup at smc.vnet.net
- Subject: [mg87047] Re: IsIntegerOrFloat
- From: Albert Retey <awnl at arcor.net>
- Date: Sun, 30 Mar 2008 01:16:03 -0500 (EST)
- References: <fsl214$g77$1@smc.vnet.net>
Hi,
> I need a function
>
> IsIntegerOrFloat[expr]
>
> that returns True if expr, which is generally a flat list, contains
> only integers or floating point numbers, and False otherwise.
> Rational numbers such as 1/2 are considered symbolic for this test; so is
> \[Pi] or Sqrt[5]. Appearance of any symbol, as in 2.0*a+3.5, makes it False.
> As in previous questions, this should work on versions >=4.0.
>
Is this what you need?
In[45]:= ClearAll[IsIntegerOrFloat]
In[47]:= IsIntegerOrFloat[n_Real]:=True
In[48]:= IsIntegerOrFloat[n_Integer]:=True
In[54]:= IsIntegerOrFloat[lst_List]:=And@@(IsIntegerOrFloat/@lst)
In[55]:= IsIntegerOrFloat[___]:=False
In[56]:= IsIntegerOrFloat[1]
Out[56]= True
In[57]:= IsIntegerOrFloat[1/3]
Out[57]= False
In[58]:= IsIntegerOrFloat[1.4]
Out[58]= True
In[59]:= IsIntegerOrFloat[\[Pi]]
Out[59]= False
In[60]:= IsIntegerOrFloat[2.0*a+3.5]
Out[60]= False
In[61]:= IsIntegerOrFloat[{1,2,3,0.8,6.9}]
Out[61]= True
In[62]:= IsIntegerOrFloat[{1,2,3,0.8,6.9,1/2}]
Out[62]= False
In[63]:= IsIntegerOrFloat[{1,2,3,0.8,6.9,a}]
Out[63]= False
I think this would even work with version 1 or 2 :-)
hth,
albert