>>782
if とかの構文に限らないよ。
Gauche でこんなのを書いたとして、
三つめの式が #t を返す (グローバルな foo を呼ぶ) ように bar を定義できる?

(define (foo) #t)
(define-macro (bar) '(foo))
(let ((foo (lambda() #f))) (bar))

Gauche の場合はモジュールを使えばできなくはないけど、
Scheme として足らないことにはかわりないと思う。

もういちど記事を見て欲しいんだけど、
CL と違って Scheme は Lisp-1 であるせいで、
より衝突の危険があるってことが書いてあるよ。

> もっともSchemeの場合、Lisp-1であるせいで、
> CLにはない、 ローカル変数が標準関数をシャドウしちゃう危険がある。
> マクロが関数listへの 呼び出しを埋め込んでて、
> 使われる環境でlistなんていうローカル束縛があると まずいわけだ。