- 関数型プログラミング言語Haskell Part27_©2ch.net
689 :デフォルトの名無しさん[]:2015/02/25(水) 17:10:15.53 ID:4X+FbhYD - >>688
メモリの値とターミナルの状態という機械状態を S=<("x",Vx),("y",Vy),(T)>と表すとして だとして、 x=1; → 関数(f1) --- f1 <("x",Vx),("y",Vy),(T)> = <("x",1),("y",Vy),(T)> y=2; → 関数(f2) --- f2 <("x",Vx),("y",Vy),(T)> = <("x",Vx),("y",2),(T)> x=x+y; → 関数f3 --- f3 <("x",Vx),("y",Vy),(T)> = <("x",Vx+Vy),("y",Vy),(T)> print x; → 関数f4 --- f4 <("x",Vx),("y",Vy),(T)> = <("x",Vx),("y",Vy),(T++show Vx)> print y; →関数f5 --- f5 <("x",Vx),("y",Vy),(T)> = <("x",Vx),("y",Vy),(T++show Vy)> で、これを(逐次実行は関数合成として理解できるので)関数合成すると f5 . f4 . f3 . f2 . f1 <("x",Vx),("y",Vy),(T)> = <("x",3),("y",2),(T++ "3" ++ "2" )> という関数になる。
|