Ultimamente sto imparando la programmazione funzionale in javascript, e c'è una cosa che mi ha confuso. Non riesco a capire se è sempre possibile ridefinire le variabili.
Qualcosa come: a = a + 1
lancia immediatamente bandiere rosse. a
sta mutando, quindi è un no go. E certamente dichiarando una variabile in questo modo: var a = 10
va bene, dopotutto stiamo solo dando allo stato 10
un nome. Ma che dire di qualcosa di simile:
function f(x){
var y = x;
return y + x;
}
/*overlooking the fact that this code
has no meaningful purpose and could be
simplified as return 2 *x;*/
È permesso? Dichiarare la variabile y va bene, ma cosa succede se chiamiamo f (x) due volte? Che ne dici di scrivere questa affermazione con la ricorsione? È la ridichiarazione della variabile y più volte ok? Oppure è y
solo una variabile che esiste solo durante il periodo in cui la funzione nidificata è in esecuzione.
Mentre cercavo la risposta a questa domanda, mi sono imbattuto in una pagina sulle funzioni pure e impure. Considero che la purezza non è una programmazione funzionale esclusiva. Ulteriori scavi mi hanno detto che dichiarare le variabili all'interno di una funzione potrebbe potenzialmente portare a impurità. Quindi, anche se potessi dichiarare variabili nell'ambito di una funzione, sarebbe problematico? Quali regole devo rispettare per evitare di compromettere la purezza delle mie funzioni?