Differences From
Artifact [abec99f409]:
1 1 ; [ʞ] lisp-macro
2 -; enable use of the define-macro syntax
3 -; - example -
4 -; (define-macro (if-or-f . body)
2 +; ~ lexi hale <lexi@hale.su>
3 +; © affero general public license
4 +; > (load "lib/lisp-macro.scm")
5 +
6 +; enable use of the define-macro syntax in chicken scheme
7 +; ex: (define-macro (if-or-f . body)
5 8 ; `(if ,(car body) ,(cadr body) #f))
6 9
7 10 (define-syntax define-macro
8 11 (er-macro-transformer (lambda (exp r c)
9 12 `(define-syntax ,(caadr exp)
10 13 (er-macro-transformer
11 14 (lambda (,(cdadr exp) id-rename id-compare)
12 15 (let ((,(cdadr exp) (cdr ,(cdadr exp))))
13 16 ,@(cddr exp))))))))