Int
乱数生成のシードとして使用する sが必要なので、システム時間をシードとして使用するという古いトリックを使用したかったのです。
そこで、Data.Time パッケージを使用しようとしたところ、次のことができました。
import Data.Time.Clock
time = getCurrentTime >>= return . utctDayTime
時間を実行すると、次のようなものが得られます。
Prelude Data.Time.Clock> time
55712.00536s
の型はtime
ですIO DiffTime
。IO Something
これはプログラムの外部のものに依存するため、型が表示されることを期待していました。だから私は2つの質問があります:
a) 何らかの方法で IO をアンラップして、基になる DiffTime 値を取得することは可能ですか?
b) DiffTime を秒単位の値を持つ整数に変換するにはどうすればよいですか? 関数secondsToDiffTime
はありますが、その逆が見つかりませんでした。