Makoto Satoh
makot****@yahoo*****
2003年 1月 16日 (木) 13:31:01 JST
佐藤です。 WiLiKi の macro.scm で、次のようなマクロ作成手続きがあります。 (define-syntax define-reader-macro (syntax-rules () ((_ (name . args) . body) (set! *reader-macro-alist* (let ((sname (string-append "$$" (symbol->string 'name)))) (acons sname (lambda p (if (arity-matches? p 'args) (receive args (apply values p) . body) (unrecognized sname))) *reader-macro-alist*)))) )) ここで、3行目の _ は、マクロ名、つまりここでは define-reader-macro を 参照していると考えて良いでしょうか? また、let 文の中では、グローバル変数 *reader-macro-alist* に、sname と lambda 式の戻り値を acons していますが、lambda 式の引数 p には、何が どこから来るのでしょうか? 初心者質問で申し訳ないですが、教えていただけると幸いです。 あるいは、Scheme について初心者が質問できる他の場所があれば、教えて いただけますか? -- Makoto SATOH <makot****@yahoo*****> __________________________________________________ Do You Yahoo!? Yahoo! BB is Broadband by Yahoo! http://bb.yahoo.co.jp/