 
 
 
 
 
 
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

