A few more differences between LISP and Haskell:

1) LISP is usually interpreted though most LISP systems allow compilation too.
   At the moment, Haskell is a compiled language (though Gofer comes pretty
   close to being a Haskell interpreter).

   (This is probably the reason for the "Haskell is a small language" comment.)

2) Haskell has data types and pattern matching, LISP does not. To put it
   another way, all types in LISP have to be built up from the original
   set of types (numbers, characters, pairs) --- and you can't hide the
   representation: if you represent triples by nested pairs (_,(_,_)), you
   can apply car and cdr (fst and snd in Haskell) to triples.

3) Type classes: Haskell has them, LISP doesn't.

4) LISP is "reflective". That is, its compiler/interpreter can be invoked
   at runtime --- this is very much a part of LISP being interpretive.   

[I'm not sure I understand jcp's comment about Object Oriented Programming:
 has LISP changed since I last looked?

Alastair

Reply via email to