Re: Using a logical Or in the function definition

*To*: mathgroup at smc.vnet.net*Subject*: [mg86698] Re: Using a logical Or in the function definition*From*: "David Park" <djmpark at comcast.net>*Date*: Wed, 19 Mar 2008 05:21:50 -0500 (EST)*References*: <fro39q$i8a$1@smc.vnet.net>

You should use Alternatives (which is a pattern construction) instead of Or (which is a logical function). Also it is useful to use the symbol:(pattern) construction. ab[r : (_Integer | _Rational), s : (_Integer | _Rational)] := r/s {ab[3, 4], ab2[3/4, 3/4], ab[r, s], ab[3., 4.]} -- David Park djmpark at comcast.net http://home.comcast.net/~djmpark/ <ahallam at iastate.edu> wrote in message news:fro39q$i8a$1 at smc.vnet.net... >I would like to use Or in the function definition as in > > ab[ Or[r_Integer,r_Rational], Or[s_Integer,s_Rational] ]:=r/s; > > In other words, I want the function to take integers or ratios of > integers as arguments, but not real numbers which are not rational. > > But if I give the function integer arguments, it does not evaluate. > > If I try > > ar[ r_Integer , Or[s_Integer , s_Rational]] := r/s; > > and give an integer first argument it works and so on. >