Subject: Re: Lisp's future
From: Erik Naggum <>
Date: 29 Jan 2004 10:17:56 +0000
Newsgroups: comp.lang.lisp
Message-ID: <>

* Tuang
| Would someone be willing to describe these advantages in a bit more
| detail?  As a newbie to both Scheme and CL, I too find CL's #' a
| hassle compared to the Scheme way of treating an expression that
| evaluates to a function just the same as a function name, and not
| having to think about the rules for when to quote or sharp-quote or
| funcall-sharp-quote....
| Of course having to think about the rules for a while until you
| internalise them is standard in programming, and I don't care as long
| as any additional comnplexity buys me proportional (or more)
| advantage.

  This is an important point, frequently overlooked by experts.  To
  become an expert, you have to do something often enough that you no
  longer know why you do it, you just know what do to, immediately, but
  there are no /rules/.  The novice often has to learn rules to follow,
  because that is believed to be the best didactic presentation of the
  expertise, but pedagogy is not exactly a science.  The more we know
  about how people become competent and then experts, we realize that
  one must leave the rules stage as soon as possible, but no sooner, of
  course :).  Going from rules to expertise is not a well-understood
  process that can be taught, however.  It appears to defy explanation
  to those who have not already understood it.

  Common Lisp does not have «rules» that are easy to learn.  Instead, it
  is extremely expert-friendly, and those who want to become experts
  find it easy to do so because they can reason their way around, while
  those who only want to become competent, will be endlessly frustrated
  by the lack of comprehensive tables of results of the reasoning that
  they have no interest in doing on their own.

  Some people have expressed the notion here that mathematics is also no
  more than a bunch of rules, or maybe it was just one person.  Anyway,
  the difference between rules and reasoning is like the different view
  of functions.  One view is that a function is a mapping from one set
  to another set, and you can enumerate both sets if you feel like it,
  or consult a table or a computing device.  This view very effectively
  prevents people from learning the other view.  The other view is that
  a function is an expression of an abstract relationship and that one
  can obtain a mapping through a series of intermediate steps on demand,
  but it is the abstract relationship that is important.  As long as you
  obsess about the values and mappings, you will never grasp the purpose
  of the function.  I have watched kids who have been taught by teachers
  to compute meaningless functional mappings believe that mathematics is
  merely arithmetic and rote learning of tables of mappings, but who
  have then been taught to /reason/ about the abstract relationships
  that are expressed by the functions, and they light up like fireworks.
  Common Lisp is just as much rules as mathematics is arithmetic.

  If you set out to internalize rules, you /will/ miss the big picture.

| Then I could move it from the "costs of CL" to the "benefits of CL"
| category in my mind. ;-)

  I think the error is in determining something to be a cost too early.

Erik Naggum | Oslo, Norway                                      2004-029

Act from reason, and failure makes you rethink and study harder.
Act from faith, and failure makes you blame someone and push harder.