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?