[Date Index] [Thread Index] [Author Index]
Re: Using a logical Or in the function definition
ahallam at iastate.edu wrote: > 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. > Have you checked the documentation on how to construct patterns? http://reference.wolfram.com/mathematica/guide/Patterns.html You need Alternatives, not Or. ab[ r:(_Integer|_Rational), s:(_Integer|_Rational) ]:=r/s But perhaps you were looking for ab[r_?ExactNumberQ, s_?ExactNumberQ] := r/s ?