Si presume che una pura funzione generi gli stessi output in base agli stessi input. Supponiamo che una funzione libera da effetti collaterali (altrimenti) calcoli con numeri in virgola mobile. A causa di un errore numerico, queste uscite possono differire (a seconda del sistema, del parallelismo, dell'ottimizzazione del compilatore ...) Ad esempio link . Quindi tecnicamente la funzione non è referenzialmente trasparente.
Un problema diverso ma correlato è quando definiamo un'aggiunta monoide su numeri in virgola mobile. L'assunto di fondo chiave, in FP, è di associatività aggiuntiva, che viene violato con precisione finita: cfr. link per un esempio di base.
C'è qualche rilevanza pratica di tali violazioni nella programmazione funzionale? In caso negativo, dovremmo semplicemente assumere la trasparenza referenziale? O dovremmo sforzarci per la massima RT, ad esempio scegliendo una lingua con una migliore riproducibilità dei risultati numerici a scapito della loro precisione?