■
Gaucheいれた。
gosh> (define-syntax bar (syntax-rules () ((bar x y z) (if x y z)))) #<undef> gosh> bar #<macro bar> gosh> (bar (p #t) (p 1) (p 2)) #t 1 1
ふむふむ。
gosh> (define-syntax (chain (syntax-rules () ((chain x ()) x) ((chain x y)(chain ((car y) x) (cdr y)))))) *** ERROR: Compile Error: syntax-error: malformed define-syntax:
だめか。
(chain 1 '(inc inc inc))が(chain (inc 1) '(inc inc)), (chain (inc (inc 1)) '(inc)), (chain (inc (inc (inc 1))) '()), (inc (inc (inc 1)))と変形されるのをやりたかったんだけどな。