「48時間でSchemeを書こう/変数と代入」の版間の差分

削除された内容 追加された内容
M 冒頭部分の文章を整えた
M編集の要約なし
1 行
 やっと、我々は便利なものを手にします。変数です。これ変数は評価の結果を保存したり、あとから参照出来るようにしてくれます。Schemeの中では、変数は新しい値でリセットすることができますし、またプログラムの実行によって、その値は変化します。これは、Haskellにとっては複雑に見えます。というのも、Haskellの実行モデルは、値を返す関数の上に構築されており、それらを変えることが出来ないからです。
 
 にも関わらず、Haskellでは同じ状態をシミュレートする方法がいくつかあり、全てモナドに関係します。一番シンプルなのは、おそらくState モナドです。このモナドは、任意の状態をモナドの中に隠しておいて、舞台裏で周囲に渡します。貴方は、パラメータとして、状態のタイプをこのモナドに記入し、普通はdoブロックの中から、get と putの機能を使って、アクセスすることができます(もし関数がIntegerを返してきて、でもStringの二組のリストに変更するなら、それは<span class="inline_code"> State [(String,String)] Integer</span>という型を持ちます)。貴方は、戻り値と最終状態を含んだペアを返す<span class="inline_code">runState myStateAction initialList</span>を通じて、初期状態を記述します。