ハスケルのSystem.Random
がHaskell For A Greatを学習したI/Oの章を読んだ後の理解を明確にしたいと思います。HaskellのStdGen型の文字列表現の意味
私が理解するところでは、タイプStdGen
の値は、ランダムシーケンスの生成シードのように振る舞います。つまり、StdGen
タイプは、タグ付きの(しかしランダムな)整数の一種に過ぎず、タグはStdGen
です。これは正しいです?
また、getStdGen
は、開始シードのためにオペレーティングシステム(またはおそらく?)をクエリし、そのアクションの実行結果はgen
に格納されます。
タイプStdGen
の値を印刷しようとすると、次のように、常に2つの大きな整数が空白で区切られています。私はこの値が単一の整数であると想像していたでしょう。それで、ホワイトスペースは何を意味するのでしょうか?私が理解から
Prelude System.Random> gen <- getStdGen
Prelude System.Random>
Prelude System.Random> gen
751404879 1655838864
Prelude System.Random>