Enumerations: Difference between revisions

m
Shortened my Scheme using syntax extension
(Scheme syntax extension)
m (Shortened my Scheme using syntax extension)
Line 1,822:
(lambda (x)
(syntax-case x ()
((_ name nxint (sym val))
(andsyntax (identifier? (syntax symvoid)))
(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 ...)
(and (identifier? (syntax sym))