State Monad の get 関数による 1 つの質問:
私が走れば
runState 取得 1
結果が出ました
(1,1)
get 関数は結果の値を状態に設定し、この場合は状態が 1 であるため、これは問題ありません。したがって、(1,1) が結果です。Ok。
しかし、私が実行すると
runState (do{(a,b) <- get; return a}) (偽、0)
結果が出ました
(偽,(偽,0))
そして、これは私には理解できません。
get 関数は結果値を状態に設定し、状態を変更しませんでした。だから私が期待するのはこのようなものです
((偽,0),(偽,0))
これも同じ
runState (do{(a,b) <- get; return b}) (False, 0)
結果は
(0,(偽,0))
上記のように、これもわかりません。
ですから、この奇妙な結果について説明していただければ幸いです。;)
前もって感謝します
よろしくお願いします、
ジミー