Island Life

< begin | Proposal: Moratorium... >

2009/10/22

トップレベル式

天泣記2009-10-19 (Mon)

ありゃ、なんか誤解してるかな?

    gosh> x
    *** ERROR: unbound variable: x
    Stack Trace:
    _______________________________________
    gosh> (car (begin (define x 1) '(1 2)))
    1
    gosh> x
    1

あーそれはGaucheの手抜きです。R5RSでは不正な式に対して エラーを通知することは要求されてないので、 「こんな式書かないだろう」と私が勝手に思ってる不正な式については不定な動作をします。 その動作が将来にわたって保たれる保証はありません。

あんまりエラーチェックに熱心じゃないので、「Schemeではどうなるか」 というリファレンスとして使うのに良い処理系じゃないです。 仕様書を見てもらうことが一番確実ですね。

Tags: Programming, Gauche