[racket] Unexpected error extracting value from request bindings.

From: Hendrik Boom (hendrik at topoi.pooq.com)
Date: Mon Aug 1 20:20:45 EDT 2011

On Mon, Aug 01, 2011 at 12:28:51PM -0400, Eli Barzilay wrote:
> Five minutes ago, Hendrik Boom wrote:
> > On Mon, Aug 01, 2011 at 01:08:27AM -0400, Neil Van Dyke wrote:
> > > 
> > > Esoterica #2: You'll see functions like "gensym" and "gentemp" in
> > > some old Lisp dialects, and they will be used mostly to get around
> > > problems of non-hygienic macros in that particular dialect.  I
> > > don't recall seeing them used in real Racket or Scheme code,
> > > however, probably because those languages have hygienic macros.
> > 
> > I've used them extensively in programs doing theorem proving on
> > formulas involving quantifiers.  This had noting to do with macros,
> > hygienic or not.
> 
> That's really the same use as macros: it's the easiest way to get a
> "completely fresh" value, which is frequently needed in such a world
> (and can get hairy if you're restricted in a pure world).  IMO
> uninterned symbols are actually a little *worse* for that purpose,
> because besides the freshness, they have this confusing feature of
> being printed like other symbols.

Yes, it's to prevent rogue variable capture, which are what hygienic 
macros are for, too.  But it is an intnded use which is not macros.

-- hendrik


Posted on the users mailing list.