
On Sat Jan 13, 2007 at 06:27:22PM +0100, Toby wrote:
Jeffrey Cunningham wrote:
Now the macro sees only the symbol s, not the string it refers to. Is there a way to get around this?
Not without understanding how macros work.
May I suggest this book, especially chapter 8? http://www.gigamonkeys.com/book/
Okay, I read chapter 8 (very good chapter). And I'm almost there. I came up with this macro, which works: (defmacro build-handler (category) (let ((symb (gensym))) `(progn (setf ,symb (intern, category)) (define-easy-handler (,symb :uri (catstr "/" ,category ".html") :default-request-type :post) ((arg)) (declare (ignorable arg)) (with-html (:html (:body (:h1 "Crazy as " (str ,category)))))))))) So (let ((s "batshit")) (build-handler s)) and (build-handler "batshit") both work. But they give the following warning: -+ Warnings (2) |-- --> PROGN SETF | ==> | (SETQ #:G0 (INTERN CL-USER::S)) | undefined variable: #:G0 `-- This variable is undefined: #:G0 which doesn't seem healthy. Could you tell me what I'm doing wrong? Regards, --Jeff