No, no, io mi sono incupito per il fatto che la funzione deve essere ricorsiva!!! Non mi pare abbia senso.
Secondo me, cosi' si cresce una schiera di programmatori che odiano la ricorsione e non la utilizzano nemmeno nei (rarissimi) casi in cui serve davvero!!!