Subject: Re: Lisp & SICP
From: Erik Naggum <>
Date: 2000/05/17
Newsgroups: comp.lang.lisp
Message-ID: <>

* "Harley Davis" <>
| Unless you are writing very deeply nested functions and use a lot of
| shadowed variable names, or unless you are passing around a lot of
| functions as arguments, the functional position in Scheme
| expressions is quite stable.

  I disagree.  Reading Scheme code, I have to check for these things
  all the time -- especially if I have to do so in order to assess the
  programmer as "wise enough" to avoid the problem, _and_ he's aware
  of the vocabulary of "standard names" that I subscribe to.  (Lacking
  a package system and a language useless without extensions, this is
  not the same, simple issue it is in Common Lisp.)

  Common Lisp has a simple rule that you can't modify the meaning of
  symbols in the Common Lisp package globally.  This lets me sleep
  well and read code with confidence.  With Scheme, I have no idea
  what anything means unless I have checked.  That makes me nervous,
  and because it's so utterly pointless to push this and many other
  problems on me as a (potential) user, I have come to dislike Scheme.

| My experience is that in practice this is not much of an issue,
| because most programmers are wise enough not to rebind standard
| names, but I have a bias for the multiple namespace system because I
| agree that it is marginally clearer for the human to see an explicit
| function call when using functional arguments or computed functions.

  Sometimes, the margins are all that keeps us from ...  Never mind. :)

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