[racket] Macros and literal-id

From: Richard Cleis (rcleis at mac.com)
Date: Tue Aug 9 13:35:51 EDT 2011

Are you sure that's what he meant? When I am writing syntax-rules, I often recurse when attempting to recur.


On Aug 9, 2011, at 11:30 AM, Jos Koot <jos.koot at telefonica.net> wrote:

> I enjoyed glancing through your links. In the first one I saw the word
> 'recurse'. I think you ment 'recur', not 'curse again' :)
> Jos
> -----Original Message-----
> From: users-bounces at racket-lang.org [mailto:users-bounces at racket-lang.org]
> On Behalf Of Neil Van Dyke
> Sent: martes, 09 de agosto de 2011 19:02
> To: Prabhakar Ragde
> Cc: users at racket-lang.org
> Subject: Re: [racket] Macros and literal-id
> Prabhakar Ragde wrote at 08/09/2011 12:05 PM:
>> Neil Van Dyke wrote:
>>> The hardest macro tasks, in "syntax-rules",
>>> become opportunities to show off how well one can do scary-looking CPS
>>> that's really expensive at expansion time.
>> For my edification, as well as that of other macro newbies, can you 
>> give some examples of this, and how syntax-case can be more 
>> expressive? Thanks. --PR
> Someone other than me can do a better job of explaining, but I'll 
> quickly and gauchely link to my blog, for some things that were harder 
> in "syntax-rules" than they would've been in "syntax-case":
> http://www.neilvandyke.org/weblog/2010/10/#2010-10-08
> http://www.neilvandyke.org/weblog/2008/11/#2008-11-03
> http://www.neilvandyke.org/weblog/2009/04/#2009-04-06
> http://www.neilvandyke.org/weblog/2009/11/#2009-11-28
> Then there are things that are possible in Racket's "syntax-case" but 
> impossible in RnRS "syntax-rules" (unless perhaps your name is Oleg).  
> My forthcoming "html-template" package, for example, is implemented 
> using "syntax-case", so that it can generate large strings of HTML at 
> expansion time instead of while you're trying to serve Web pages quickly.
> -- 
> http://www.neilvandyke.org/
> _________________________________________________
>  For list-related administrative tasks:
>  http://lists.racket-lang.org/listinfo/users
> _________________________________________________
>  For list-related administrative tasks:
>  http://lists.racket-lang.org/listinfo/users

Posted on the users mailing list.