Changeset 31145 for lang/scheme/3imp/macro.scm
- Timestamp:
- 03/13/09 17:59:53 (4 years ago)
- Files:
-
- 1 modified
-
lang/scheme/3imp/macro.scm (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
lang/scheme/3imp/macro.scm
r31130 r31145 6 6 (hash-table-put! *macro-table* name f)) 7 7 8 (define-macro (define-special-form name . f) 9 (if (pair? name) 10 `(define-special-form ,(car name) (lambda (%sp% ,@(cdr name)) ,@f)) 11 `(add-macro ',name ,(car f)))) 12 8 13 (define-macro (define-builtin-macro name . f) 9 14 (if (pair? name) … … 11 16 `(add-macro ',name ,(evaluate (car f))))) 12 17 13 (define-macro (define-special-form name . f)14 (if (pair? name)15 `(define-special-form ,(car name) (lambda (%sp% ,@(cdr name)) ,@f))16 `(add-macro ',name ,(car f))))17 18 18 (define (macro? name) 19 (if (hash-table-exists? *macro-table* name) 20 (hash-table-get *macro-table* name) 21 #f)) 19 (and (hash-table-exists? *macro-table* name) 20 (hash-table-get *macro-table* name))) 22 21 23 22 (define (all f . args) … … 33 32 (let ((trns 34 33 (cond ((macro? name) => (lambda (c) 35 (if (pr ocedure? c)34 (if (primitive-function? c) 36 35 (apply c s (cdr x)) 37 36 (vm-apply s c (cdr x)))))
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)