補助マクロやローカルマクロが思ったように動かないなら、パターンを追加すれば良いのかも?
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(define-syntax reverse-and-quote-list | |
(syntax-rules () | |
((_ lis) | |
(reverse-and-quote-list lis ())) | |
((_ () (backw ...)) | |
'(backw ...)) | |
((_ (arg rest ...)(backw ...)) | |
(reverse-and-quote-list (rest ...)(arg backw ...))))) | |
(reverse-and-quote-list (1 2 3 4 5)) | |
; -> (5 4 3 2 1) |
ということで、今回の場合はこれで動いたようです。
なんかメソッドのオーバーロード(C#とか)に似ていませんか。
shiro さんにコメントを頂き、教えて頂きました。ありがとうございます!
こうやって処理系の作者の方から直接コメントを頂けるなんて、すごい世界ですね、インターネッツは・・・。
define-syntaxの直下にletrec-syntaxが来る形はGaucheではまだサポートされていません。
「展開した結果に...を含める」には (... ...) と書くことにR6RSではなっています。Gaucheでは未サポートです。R5RS をまともに読んだことがない、というのがよくないですね・・・orz R6RS についてはほとんど何もしりません。。R5RS に比べてページ数が3倍の150ページになったらしいことと、defmacro でできることができるらしい syntax-case なる難しそうなものがある、ということくらいしか知りません。
追記
補助マクロやローカルマクロが思ったように動かないなら、パターンを追加すれば良いのかも?でも、余計なインターフェース(?)が増えるのか・・・。うーん。
0 件のコメント:
コメントを投稿