Recursion is your friend. It will always be your friend. When
iteration fails, when nastly little variables named
x seem to be
everywhere around you, when the pointy stick of looping past the end
of a list jabs you in the eye, recursion will always be there.
Of course it is its own reward