J'ai besoin de quelques Int
s à utiliser comme germe pour la génération de nombres aléatoires et donc je voulais utiliser l'ancienne astuce de l'utilisation de l'heure système en tant que germe.Comment obtenir l'heure du système dans Haskell en utilisant Data.Time.Clock?
J'ai donc essayé d'utiliser le paquet Data.Time et je réussi à faire ce qui suit:
import Data.Time.Clock
time = getCurrentTime >>= return . utctDayTime
Quand je lance fois que je reçois des choses comme:
Prelude Data.Time.Clock> time
55712.00536s
Le type de time
est IO DiffTime
. Je m'attendais à voir un type IO Something
car cela dépend de choses externes au programme. J'ai donc deux questions:
a) Est-il possible de déballer l'E/S et obtenir la valeur DiffTime sous-jacente?
b) Comment convertir un DiffTime en entier avec sa valeur en secondes? Il y a une fonction secondsToDiffTime
mais je n'ai pas pu trouver son inverse.
Je pense pour la simplicité, surtout pour un débutant , vous pouvez omettre la parenthèse en retour. f et pourquoi la syntaxe de style d'espace blanc? – codebliss
@codebliss: pour un débutant, je voulais rendre les choses très explicites et ne pas obliger le lecteur à comprendre les détails de la préséance ou de la mise en page –
Vous pouvez également faire 'f <$> time' puisque chaque monade est un foncteur. IMO ça a l'air très bien. –