2010-01-28から1日間の記事一覧

syntax-rulesの正体!?

id:yagiey:20100128:1264631316でfooというマクロを定義して、hogeという字句を含むように強制してみた。 syntax-rulesが何者か疑問に思っていたが(id:yagiey:20100128:1264631023)、hogeみたいな感じでsyntax-rulesという字句を強制してんじゃね?って一…

R5RSマクロその2

R5RSマクロは、 式の構造のパターンマッチ マッチした時に展開されるテンプレート という形で定義されるってのはこの前やった。 しかし、式の構造だけではなく、同じ字句かどうかで判定しなければならないことがある。それがcondで、なぜならelseという字句…

syntax-rulesって何者?

define-syntaxで、syntax-rulesなるS式が出てきた。 一方で、必須構文の中にsyntax-rulesが入ってなかったので、ちょっと意外だった。構文だと思ってたのに。 ってことで、やってみた。 gosh> syntax-rules *** ERROR: unbound variable: syntax-rules Stack…

let

マクロの練習に、自分でletを定義してみた。 (define-syntax my-let (syntax-rules () ((my-let ((var init) ...) expr ...) ((lambda (var ...) (begin expr ...)) init ...)) ((my-let fname ((var init) ...) expr ...) (my-let ((fname #f)) (set! fname…