03/07/16 17:37
data Id a = Id a deriving Show
instance Monad Id where
Id x >>= f = f x
return = Id
foo :: Int -> Id Int
foo arg =
do { x <- ID arg
; x <- ID (x * 2)
; x <- ID (x + 1)
; return x }
というHaskell のプログラムと、
int
foo (int arg)
{
int x;
x = arg;
x = x * 2;
x = x + 1;
return x;
}
は、そっくり。上は副作用をつかってないですけど、
下は副作用をつかっています。
そんだけ。
int