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 _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users