Devo ammettere che non so molto sulla programmazione funzionale. Ne ho letto di qua e di là, e così ho scoperto che nella programmazione funzionale, una funzione restituisce lo stesso output, per lo stesso input, indipendentemente da quante volte viene chiamata la funzione. È esattamente come una funzione matematica che valuta lo stesso output per lo stesso valore dei parametri di input che coinvolge nell'espressione della funzione.
Ad esempio, considera questo:
f(x,y) = x*x + y; // It is a mathematical function
Non importa quante volte lo usi f(10,4)
, il suo valore sarà sempre 104
. Pertanto, ovunque tu abbia scritto f(10,4)
, puoi sostituirlo con 104
, senza alterare il valore dell'intera espressione. Questa proprietà viene definita trasparenza referenziale di un'espressione.
Come dice Wikipedia ( link ),
Al contrario, nel codice funzionale, il valore di output di una funzione dipende solo dagli argomenti che sono stati immessi nella funzione, quindi chiamare una funzione f due volte con lo stesso valore per un argomento x produrrà lo stesso risultato f (x) entrambe le volte.
Può esistere una funzione temporale (che restituisce l' ora corrente ) nella programmazione funzionale?
Se sì, come può esistere? Non viola il principio della programmazione funzionale? In particolare viola la trasparenza referenziale che è una proprietà della programmazione funzionale (se la capisco correttamente).
O se no, come si può sapere l'ora corrente nella programmazione funzionale?