関数型プログラミング言語Haskell
■ このスレッドは過去ログ倉庫に格納されています
0479デフォルトの名無しさん
NGNG「getCharを呼ぶとCharが返ってくる」と思うと副作用に見えるかも知れない。
この解釈は間違い。
World型の値w(プログラマには見えないし触れない)があるとして、
(getChar w)を計算した結果、「状態が変わったw」と文字が得られる。
do
c<-getChar
putChar c
の実行を図にするとこんな感じ。
World
↓
getChar → コマンド → cの値
↓
putChar c → コマンド
↓
変化したWorld
式で書くと
let (c,w2)=(getChar w)
in ((putChar c) w2)
みたいな感じ。
■ このスレッドは過去ログ倉庫に格納されています