文法エラーについて
なかなか興味深い。
Gauche
gosh> (define (x)) x gosh> (x) #<undef> gosh> (define (y 3)) y gosh> (define (z n n) (+ n n)) z gosh> (z 1 2) 2
通った。Gaucheは文法エラーがゆるいらしい。
引数チェックすると重くなるからだと思われる。
MzScheme
> (define (x)) stdin::40: define: bad syntax (no expressions for procedure body) in: (define (x))
ことごとくエラーだ。変な文法は殆んど通らない。くそぅ。
コンパイルを前提に考えるとこっちの方がいいのかも。
ゆるめでいくかな。