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

削除された内容 追加された内容
翻訳の修正2
編集の要約なし
48 行
isBound envRef var = readIORef envRef >>= return . maybe False (const True) . lookup var
 
 まず最初に、readIORefを使って、IORefから実際の環境の値を取り出します。そして、私たちが関心のある変数を探すため、この環境の値をlookupに渡します。lookupはMaybeの値を返すので、もしこの値がNothingならばFalseを返し、他の値ならTureTrueを返します(ここで[http://www.haskell.org/onlinereport/standard-prelude.html#$vconst const]関数を使います。 というのも、[http://www.haskell.org/onlinereport/standard-prelude.html#$vmaybe maybe]が要求するのは、ただの値ではなく、結果を実行する関数だからです)。最後に値をIOモナドに持ち上げるためreturnを使います。ここではtrueかfalseかの値に興味があるので、lookupが返した実際のIORefを扱う必要はありません。
 
 次に、変数の現在の値を取り出す関数を定義します。