C'est référentiellement transparent, System.Random.RIO?
randomRIO (-1,1) >>= (\x -> if x == 1 then return 1 else undefined)
Soit ça retourne, soit ça lance une exception (ou je pourrais le faire non-terminer).
Effectivement, du point de vue type, c'est correct, mais du point de vue execution, c'est non-déterministe, et ça me parait donc difficilement référentiellement transparent…
[^] # Re: Avantages de la programmation fonctionnelle?
Posté par Axioplase ıɥs∀ (site web personnel) . En réponse au journal Adopter un style de programmation fonctionnel. Évalué à 2.
C'est référentiellement transparent, System.Random.RIO?
Soit ça retourne, soit ça lance une exception (ou je pourrais le faire non-terminer).
Effectivement, du point de vue type, c'est correct, mais du point de vue execution, c'est non-déterministe, et ça me parait donc difficilement référentiellement transparent…