On Fri Jan 12, 2007 at 04:13:08PM +0100, Toby wrote:
define-easy-handler is a macro, which means that (intern name) doesn't get evaluated unless/until the macro sees fit.
Try defining some-function as a macro too:
(defmacro some-function (name) `(define-easy-handler (,(intern name) :uri ,(concatenate 'string name ".html") :default-request-type :post) ((formarg :parameter-type :keyword)) (html-generator ,name formarg)))
Hmmm. Unfortunately, it leads to another problem when I try to apply it to something useful, such as this reduction:
mapc #'some-function '("foo" "bar")
or even
(let ((s "foo")) (some-function s))
Now the macro sees only the symbol s, not the string it refers to. Is there a way to get around this? My knowledge of macros is pretty weak.
Thanks,
--Jeff