Calcola se una funzione è pura
https://softwareengineering.stackexchange.com/questions/176761
-
05-11-2019 - |
Domanda
Secondo Wikipedia:
Nella programmazione del computer, una funzione può essere descritta come pura se entrambe queste istruzioni sulla funzione sono valide: la funzione valuta sempre lo stesso valore di risultato dato lo stesso valore / i dell'argomento. Il valore del risultato della funzione non può dipendere da alcuna informazione nascosta o stato che può cambiare man mano che l'esecuzione del programma procede o tra diverse esecuzioni del programma, né può dipendere da qualsiasi input esterno dai dispositivi I/O. La valutazione del risultato non provoca alcun effetto collaterale o output semanticamente osservabile, come la mutazione di oggetti mutabili o l'output ai dispositivi I/O.
Mi chiedo se è possibile scrivere una funzione che calcola se una funzione è pura o no. Codice di esempio in JavaScript:
function sum(a,b) {
return a+b;
}
function say(x){
console.log(x);
}
isPure(sum) // True
isPure(say) // False
Nessuna soluzione corretta