Ma che teoria, guarda attentamente la tua funzione, non vedi che su ogni riga, anziche lavorare sulla variabile contentente le modifiche, tu lavori sulla variabile iniziale?!