モナドに関するチュートリアルのセクションA more complex side effect: Random Numbersで、著者はランダム関数の署名を次のように提供しています。
random :: StdGen -> (a,StdGen)
しかし、続けて次のように言います。
したがって、概念的にランダム化された関数である関数は、シードの型で
a → b
ある関数として記述できます。
a -> StdGen -> (b,StdGen)
StdGen
a
署名の最初の余分な部分はどこから来たのですか? なぜそのタイプはStdGen -> (a, StdGen)
以前のように単純ではないのですか???
ありがとう