Necesito algunos Int
s para usar como semilla para la generación de números aleatorios y por eso quería usar el viejo truco de usar la hora del sistema como semilla.¿Cómo obtener la hora del sistema en Haskell usando Data.Time.Clock?
así que traté de usar el paquete Data.Time y me las arreglé para hacer lo siguiente:
import Data.Time.Clock
time = getCurrentTime >>= return . utctDayTime
Cuando corro vez que tengo cosas como:
Prelude Data.Time.Clock> time
55712.00536s
El tipo de time
es IO DiffTime
. Esperaba ver un tipo IO Something
ya que esto depende de cosas externas al programa. Entonces tengo dos preguntas:
a) ¿Es posible de alguna manera desenvolver el IO y obtener el valor DiffTime subyacente?
b) ¿Cómo convierto un DiffTime en un número entero con su valor en segundos? Hay una función secondsToDiffTime
pero no pude encontrar su inversa.
Creo que es por simplicidad, especialmente para un principiante , podrías omitir el paréntesis a cambio. f y ¿cómo la sintaxis de estilo de espacio en blanco? – codebliss
@codebliss: para un principiante quería hacer las cosas muy explícitas y por lo tanto no exigir que el lector entienda los detalles de la precedencia o el diseño del operador –
También puede hacer 'f <$> time' ya que cada mónada es un functor. IMO esto se ve muy bien. –