Why don't people like lisp?

Kaz Kylheku kaz at ashi.footprints.net
Wed Oct 15 17:29:53 EDT 2003


"Francis Avila" <francisgavila at yahoo.com> wrote in message news:<voobanm4rs7p68 at corp.supernews.com>...
> language paradigm.  That is, when it becomes more natural to think of
> cake-making as
> 
> UD: things
> Gxyz: x is baked at y degrees for z minutes.
> Hx: x is a cake.
> Ix: x is batter.
> 
> For all x, ( (Ix & Gx(350)(45)) > Hx )
> 
> (i.e. "Everything that's a batter and put into a 350 degree oven for 45
> minutes is a cake")

[ snip ]

> 
> ...then lisp will take over the universe.

Lisp does not support that kind of programming out of the box, but
there do exist libraries of reasoning code for Lisp which extend the
language to do this type of thing, e.g. http://lisa.sourceforge.net

When you took that dreaded AI course decades ago in school, the
instructor must have given you a little Prolog-in-Lisp library in
which you did the work.

Hazy recollections of things and events long ago are no substitute for
up to date, accurate facts.

Lisp is not a purely functional language; in fact it has excellent
support for imperative as well as object-oriented programming. It
supports assignment to variables, and all kinds of objects that can be
destructively manipulated: arrays, structures, objects, streams, hash
tables, packages and so forth. Nested expressions in Lisp have a
well-defined order of evaluation, so it is easy to get the order right
when side effects are involved, whereas in purely functional
languages, the order is typically unspecified. Lisp has
short-circuiting logical operators, and many imperative statement-like
forms for conditional selection, iteration and the like. Yes, Lisp
also has a form of GOTO. Folks, it doesn't get much more imperative
than that.




More information about the Python-list mailing list