[Haskell-fr] hazard
Chaddaï Fouché
chaddai.fouche at gmail.com
Wed Feb 13 07:49:21 EST 2008
Le 13/02/08, Dupont Corentin<corentin.dupont at gmail.com> a écrit :
> J'ai trouvé ça:
> haz = (randoms (mkStdGen 5) :: [Double])
> Qui me donne une liste de nombres psoeudo aléatoires.
> Comme l'utiliser?
> Mon problème, c'est que je ne peut l'utiliser qu'une fois, si je
> l'utilise une deuxième fois je retrouve les mêmes nombres ce qui ne me
> convient pas...
> En effet je voudrais obtenir une liste de positions à chaque fois
> différente à chaque essais.
Ce n'est pas possible tant que tu n'utilises pas la monade IO... En
effet Haskell a la propriété de transparence référentielle qui dit
qu'une fonction retourne toujours la même chose avec les mêmes
arguments.
Avec mkStdGen 5 tu crées un générateur aléatoire, mais il est
complètement déterminé par 5.
Un exemple d'usage de IO :
> main = do
> g <- newStdGen
> print . take 10 . randomRs (0.0, 20.0) $ g
A chaque fois que tu lanceras ce programme, la séquence sera différente.
--
Jedaï
More information about the Haskell-fr
mailing list