On Mar 27, 2009, at 7:06 PM, M. S. wrote:
;; define an object at compile time by using an identifier macro
(define-syntax define-ct
(syntax-rules ()
((_ name value)
(define-syntax name
(lambda (x)
(syntax-case x ()
[(_ . rest) #'(value . rest)]
[_ #'value]))))))
This is the same as:
(define-syntax define-ct
(syntax-rules ()
[(_ name expr)
(define-syntax name (identifier-syntax expr))]))
That is, (define-ct foo some-expr) replaces every occurrence
of foo by some-expr. It does not define a variable foo to be
usable at compile time, which is what was needed.
Aziz,,,