Enumerations: Difference between revisions
Content added Content deleted
(Scheme syntax extension) |
m (Shortened my Scheme using syntax extension) |
||
Line 1,822: | Line 1,822: | ||
(lambda (x) |
(lambda (x) |
||
(syntax-case x () |
(syntax-case x () |
||
((_ name nxint |
((_ name nxint) |
||
( |
(syntax (void))) |
||
(integer? (syntax-object->datum (syntax val)))) |
|||
(syntax |
|||
(begin |
|||
(define sym val) |
|||
(set! name (cons (cons 'sym val) name))))) |
|||
((_ name nxint sym) |
|||
(identifier? (syntax sym)) |
|||
(syntax |
|||
(begin |
|||
(define sym nxint) |
|||
(set! name (cons (cons 'sym nxint) name))))) |
|||
((_ name nxint (sym val) rest ...) |
((_ name nxint (sym val) rest ...) |
||
(and (identifier? (syntax sym)) |
(and (identifier? (syntax sym)) |