Okay, I dug a little bit into Neil's library. From what I can tell, these words don't refer to functions at all. In Neil's library, they are used within the context of a form that 'quotes' these things. Then they are processed in a context where title denotes HTML's title element. So your problem is not macros or eval but a misunderstanding of your library. -- Matthias
On Jan 8, 2013, at 10:02 AM, Philipp Dikmann wrote: > My function would always get hung up on the unknown identifiers like 'title' > or 'math' when it tried to evaluate the expressions passed as arguments - > but you are right, the macro is not really necessary. I can quote the > expressions and use the html-writing module instead, which handles quoted > lists. > I was just looking for ways to achieve a cleaner syntax. > > > > On 07.01.13 23:20, Matthias Felleisen wrote: >> I don't see any need for a macro here. Why not use a function that iterates >> over these 'forms': >> >> (define (expr-iter . form) >> (for ((f form)) >> (case (first f) >> ... >> [(math) (eval (second f) some-useful-namespace)] >> ...))) >> >> >> >> >> >> On Jan 7, 2013, at 3:57 PM, Philipp Dikmann wrote: >> >>> Hello Racket-Users, >>> >>> in trying to iterate a series of expressions and evaluating them >>> differently on a case-by-case basis - specifically in the body of a >>> (html-template) - Racket is throwing errors indicating that my expressions >>> end up in the wrong places. In the code below, it appears that + is being >>> interpreted as an HTML element name; am I messing up expansion time and run >>> time? >>> >>> >>> #lang racket >>> >>> (require (planet neil/html-template:2:2)) >>> >>> (define-syntax-rule (expr-iter form ...) >>> (begin >>> (case (car 'form) >>> [(title) (display (cadr 'form))] >>> [(math) (eval (cadr 'form))] >>> [(html) (html-template >>> (eval (cadr 'form)))]) ...)) >>> >>> (expr-iter (title "sometitle") >>> (math (+ 1 2)) >>> (html (p "hello"))) >>> >>> >>> Best regards, >>> Philipp >>> >>> ____________________ >>> Racket Users list: >>> http://lists.racket-lang.org/users >
smime.p7s
Description: S/MIME cryptographic signature
____________________ Racket Users list: http://lists.racket-lang.org/users