Una funzione ricorsiva deve ritornare in base ad una determinata condizione PRIMA di essere richiamata al suo interno, altrimenti non terminera' mai e avrai un blocco o un errore di stack overflow.