Мне нужно немного Int
использовать для генерации семян для случайных чисел, поэтому я хотел использовать старый трюк использования системного времени в качестве семени.
Итак, я попытался использовать пакет Data.Time, и мне удалось сделать следующее:
import Data.Time.Clock
time = getCurrentTime >>= return . utctDayTime
Когда я запускаю время, я получаю такие вещи, как:
Prelude Data.Time.Clock> time
55712.00536s
Тип time
- IO DiffTime
. Я ожидал увидеть тип IO Something
, поскольку это зависит от вещей, внешних по отношению к программе. Поэтому у меня есть два вопроса:
a) Можно ли каким-то образом развернуть IO и получить базовое значение DiffTime?
b) Как преобразовать DiffTime в целое число с его значением в секундах? Там функция secondsToDiffTime
, но я не мог найти ее обратную.