MathGroup Archive 2004

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

Search the Archive

Re: functions

  • To: mathgroup at smc.vnet.net
  • Subject: [mg45503] Re: functions
  • From: bobhanlon at aol.com (Bob Hanlon)
  • Date: Sat, 10 Jan 2004 16:43:24 -0500 (EST)
  • References: <bto15f$2gc$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Clear[f,x];

f[x_Rational] := x^2;
f[x_Integer] := x^2;
f[x_?NumericQ] := 1/x;

f /@ {1/2, 3, 5.5, E,x}

{1/4, 9, 0.18181818181818182, 1/E, f[x]}

Alternatively,

Clear[f, x];

f[x_?(Element[#, Rationals]&)] := x^2;
f[x_?NumericQ] := 1/x;

f /@ {1/2, 3, 5.5, E,x}

{1/4, 9, 0.18181818181818182, 1/E, f[x]}

However, if you also want to handle Symbols that have been explicitly declared
as either Rational or Integer

Clear[f,x,n];

f[x_?(Element[#, Rationals]||
              Element[#, Integers]&)] := x^2;
f[x_?NumericQ] := 1/x;

x /: Element[x, Rationals] = True;
n /: Element[n, Integers] = True;

f /@ {1/2, 3, 5.5, E,x, n,y}

{1/4, 9, 0.18181818181818182, 1/E, x^2, n^2, f[y]}

For the second example,

Clear[f,n];

f[n_?OddQ] := 1/n;
f[n_?EvenQ] := n^2;

n /: EvenQ[n] = True;

f /@ {-6, -3,0,3,6,5.5, n,x}

{36, -(1/3), 0, 1/3, 36, f[5.5], n^2, f[x]}


Bob Hanlon

In article <bto15f$2gc$1 at smc.vnet.net>, lorenzo.keegan at handbag.com wrote:

<< How do write expressions in Mathematica for functions and sequences
such as the following:

      f(x) = {1/x,  x is irrational
             {x^2,  x rational
and

      f(n) = 1/n, n odd
             n^2, n even


  • Prev by Date: Re: Graphics / cosmetics
  • Next by Date: RE: functions
  • Previous by thread: Re: functions
  • Next by thread: RE: functions