I have a function which takes as an input a list. I would like to iterate this but I have been having trouble getting it to work. In particular, I don't think Nest has issues on the second iterate. I have worked out some examples by iterating by hand in the following way:
Beginning with an initial list, I apply two functions to the list to find all the points I need.
Applying Join to this I obtain another list of points. I can then repeat the above with this new list.
I would like to avoid doing this by hand so that I can compute things efficiently.
I would therefore like something like the following
x[n_] := list1 /; n = 0
x[n_] := Join[ liftp[x[n - 1]], liftm[x[n - 1]]] /; n > 0
where
c0=-1;
f0[z_] := z^2 + c0;
fr[z1_, z2_] := z /. FindRoot[f0[z] == z2, {z, z1}];
liftp[path1_] := Drop[FoldList[fr[#1, #2] &, 1, path1], 1];
liftm[path1_] := Drop[FoldList[fr[#1, #2] &, -1, path1], 1];
Is there a way to obtain such a closed form in this recursive way?
Thanks