2.9 Variabili locali

Si noti che, nell’esempio precedente, abbiamo passato l’argomento deck alla funzione shuffle(), perché questo è il nome del data.frame che volevamo manipolare. Nella definizione della funzione shuffle(), però, l’argomento della funzione era chiamato cards. Il nome degli argomenti è diverso nei due casi. Allora perché l’istruzione shuffle(deck) non dà un messaggio d’errore?

La risposta a questa domanda è che nelle funzioni le variabili nascono quando la funzione entra in esecuzione e muoiono al termine dell’esecuzione della funzione. Per questa ragione, sono dette ‘locali’. La variabile cards, in questo esempio, esiste soltanto all’interno della funzione. Dunque non deve (necessariamente) avere lo stesso nome di un altro oggetto che esiste al di fuori della funzione, nello spazio di lavoro di R (anzi, è meglio se il nome degli oggetti usati all’interno delle funzioni è diverso da quello degli oggetti che esistono fuori dalle funzioni). R sa che l’oggetto deck passato a shuffle() corrisponde a cards all’interno della funzione perché assegna il nome cards a qualunque oggetto venga passato alla funzione shuffle() come primo (e, in questo caso, unico) argomento.