Subject: Re: Separation in function and value cells (was Re: newbie: please don't smash my case)
From: Erik Naggum <>
Date: 2000/07/09
Newsgroups: comp.lang.lisp
Message-ID: <>

* Kalle Olavi Niemitalo
| Please explain what you mean with that.

  How can it be any clearer?  Scheme decided to conflate the function
  and variable namespaces, and approximately 50 milliseconds later,
  began whining about Common Lisp's lack of hygienic macros (Scheme
  people are always whining about something in Common Lisp), simply
  because a variable binding in Scheme screws up function calls, so an
  unintentional variable binding colliding with a local function will
  make Scheme code using non-hygienic macros very unsafe.  Scheme code
  uses local functions a lot more than Common Lisp, so you'd think
  they'd realize the need to separate the namesaces is even stronger
  than in Common Lisp, but noooo, "separate namespaces is stupid" so
  they'd rather suffer the complicating consequences of their decision
  than fix it.

| Common Lisp has its separate namespaces, and even there macros
| commonly use gensym so as not to accidentally use variables of their
| callers.

  That's _so_ irrelevant.  Common Lisp macros don't use fresh symbols
  in order to avoid accidentally clobbering the functional value of
  the symbols it uses.  Scheme's hysterical need for hygiene comes
  from the very significant danger of clobbering _functional_ values.
  (That's why you see Scheme code us silly variable names likt "lst"
  instead of "list", too -- in case you want to call `list', it'd
  better not be some arbitrary list of data.)

| How does this differ from Scheme's hygienic macros?

  It doesn't, of course, but if you look only for similarities to what
  you already know, you will find very little of interest in your life.

  Human beings don't have any problems with the noun "house" naming a
  very different concept than the _verb_ "house".  Anyone who argued
  that "no, no, you can't call your building a `house' because that's
  already a verb" should just be shot to help him out of his misery.

  If this is not what you expected, please alter your expectations.