MathGroup Archive 2008

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

Search the Archive

Re: Problems with recursive function

  • To: mathgroup at smc.vnet.net
  • Subject: [mg87375] Re: Problems with recursive function
  • From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
  • Date: Wed, 9 Apr 2008 05:53:13 -0400 (EDT)
  • Organization: The Open University, Milton Keynes, UK
  • References: <ftfela$bv1$1@smc.vnet.net>

Frank Hechtner wrote:

> I'm in trouble with a recursive function. the functios looks similar to 
> test[a_, b_] := test[a - 1, b]*b. A is the index b should just be an 
> argument of test.
> for any calculation i need to tell mathematica the first value of the 
> function, e.g. test[0, 5]=5. The problem is the following: the first 
> object is independent of b. does anyone know a way to tell mathematica 
> the following thing:
> 
>   test[0,b]=5 => test[0]=5 regardless to b.

Hi Franck,

You were almost there: just use the blank pattern (single underscore) in 
place of b. In the example below, I have added a test to prevent 
infinite recursion and also memoization to improve performances (in case 
of).

     Clear[test]

     test[a_Integer?Positive, b_] := test[a, b] = test[a - 1, b]*b
     test[0, _] = test[0] = 5;

     test[0]             (* returns 5 *)
     test[0, 3]          (* returns 5 *)
     test[2, 3]          (* returns 45 *)
     test[0, 1, 2, 3]    (* returns unevaluated test[0, 1, 2, 3] *)
     test[3]             (* returns unevaluated test[3] *)
     test[-1, 3]         (* returns unevaluated test[-1, 3] *)


Best regards,
-- Jean-Marc



  • Prev by Date: Pattern problem: How to count from a long list of numbers all occurrences of 2 numbers next to each others?
  • Next by Date: RE: Just primitive ColorFunction
  • Previous by thread: Re: Problems with recursive function
  • Next by thread: Re: Problems with recursive function