Subject: Re: realistic but short and simple LISP examples?
From: Erik Naggum <>
Date: Sun, 16 Dec 2001 04:26:52 GMT
Newsgroups: comp.lang.lisp
Message-ID: <>

* Wroot <>
| C++ was really created for large projects and to facilitate code reuse
| too, and as its creator said, "For code to be reusable, it first has to
| be usable". So I don't really buy this argument. Sorry.

  Well, I basically said as much.  You are facing some counter-information
  to your previously held beliefs and your reaction is known as cognitive
  dissonance.  Unless trained to deal with this feeling, it appears from
  the literature that "most people" will reject the counter-information out
  of hand, rather than investigate _why_ they think it is wrong.  I tend to
  regard contradictions and counter-information as a signal to re-evaluate
  what I thought I knew to be correct, and try to understand how both may
  be correct at the same time because they exist in different contexts,
  thus perhaps telling me something important I did not know previously.

  Since there are also a large number of idiots out there who have no idea
  how to deal with either information or counter-information, but instead
  believe only that which causes _no_ cognitive dissonance, which applies
  to the _first_ piece of information in any suitably narrowly defined
  area, or that which some suitably irrational authority tells them, there
  will be a lot of people who produce counter-factual disinformation which
  looks very much like counter-information, thus wasting people's time with
  their craploads of nonsense.  This is extremely annoying, and the habit
  of "most people" to ignore that which causes cognitive dissonance may be
  a good defense mechanism against the usual crapload of desinformation
  that we are exposed to, but it is not a good thing for an engineer or a
  scientist or an investigator of any sort of truth.

  Take a good look at my .signature and try to accept that what you have
  yet to learn will always out-volume what you know.  It is therefore much
  more important to determine whether what you already know is false than
  to "confirm" that it is true or just to assume that it is.

  C++ fails at its goals.  This is hard for C++ programmers to accept, but
  evident to everybody else.  Common Lisp succeeds at its goals.  This is
  harder for C++ programmers to accept, but unfortunately evident only to
  past and present Common Lisp programmers.  As life is too long to become
  an expert at C++, so those who have invested the effort tend to want what
  they believe to be true, regardless of the effort required to make it so.

  Learn Common Lisp.  Get into its spirit.  It will change you, so you have
  to let it.  Resist the temptation to write C++ in Common Lisp.  Absorb
  the language and the environments you get access to.  Start with one of
  the commercial offerings.  I recommend Allegro CL from Franz Inc
  (, but others think others would recommend LispWorks from
  Xanalys (  The commercial offerings are so much better
  for learning the language than the free offerings, which currently lack
  good development environments.

| Besides, small is beautiful.

  It is actually the other way around: Anything is beautiful when small.
  The hard part is making something larger be beautiful.  This is where
  most languages _really_ suck, which is why they want small examples.
  Please think about the analogy to building a skyscraper by starting from
  a small cottage.  Or think about scaling an ant up to the size of an
  cougar (one of the most beautiful animals I know), or an elephant.

  The past is not more important than the future, despite what your culture
  has taught you.  Your future observations, conclusions, and beliefs are
  more important to you than those in your past ever will be.  The world is
  changing so fast the balance between the past and the future has shifted.