関数型プログラミング言語Haskell Part5
■ このスレッドは過去ログ倉庫に格納されています
0840デフォルトの名無しさん
2006/10/19(木) 22:26:50tick :: State Int Int
tick = do
n <- get
put (n+1)
return n
plusOne :: Int -> Int
plusOne n = execState tick n
上記のtickのコードで使われているgetについてですが、getって
get = State $ \s -> (s,s)
って定義されてますよね。
じゃあ n <- getのnには
\s -> (s,s)っていう関数が束縛されてるんじゃないでしょうか?
でも次のputでは数値として使われてるから、nは数値なんだろうけど、
どうしてそうなるのかわからないです。
■ このスレッドは過去ログ倉庫に格納されています