MathGroup Archive 2008

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Using a logical Or in the function definition

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) 

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

<ahallam at> wrote in message news:fro39q$i8a$1 at
>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.

  • Prev by Date: choose elements from list based on elements in different list
  • Next by Date: Re: Bug: symbol recreates itself suddenly
  • Previous by thread: Re: Using a logical Or in the function definition
  • Next by thread: header/footer option