I want to define a recursive sequence and then ask Mathematica to print a specific value:
Am I doing something wrong?
Mathematica Stack Exchange is a question and answer site for users of Wolfram Mathematica. It only takes a minute to sign up.
Sign up to join this communityFirst, you need to use "delayed substitution" so that Mathematica knows it needs to wait with evaluating expression until you type G[1]
. Secondly, you can't have arithmetic expression on the left-hand side. so the second line should be:
G[y_]:=2G[y-1].
G[y+1]
(assuming y
has no value assigned at the point of call). Indeed, when using a pattern, it can even make sense to have arithmetic arguments, e.g.: G[0]:=1;G[i_Integer/;i>0]:=2*G[i-1];G[y_+n_Integer/;n>0]:=2*G[y+n-1]
Then you could write G[a+4]
and get the result 16*G[a]
.
$\endgroup$
H := Function[If[# <= 0, 0, H[# - 1] + #]]
and G = Function[If[# <= 0, 0, r := G[# - 1] + #; r ]]
?
$\endgroup$
Sep 24, 2016 at 14:20