Lisp Scheme Part35
■ このスレッドは過去ログ倉庫に格納されています
0787はちみつ餃子 ◆8X2XSCHEME
2013/02/25(月) 00:00:47.74if とかの構文に限らないよ。
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なんていうローカル束縛があると まずいわけだ。
■ このスレッドは過去ログ倉庫に格納されています