From: utzoo!decvax!harpo!floyd!vax135!cornell!bob
Newsgroups: net.followup
Title: Type checking and bugs
Article-I.D.: cornell.3061
Posted: Mon May 31 22:13:20 1982
Received: Wed Jun  2 01:28:16 1982

It has been my experience that I make far fewer mistakes when I write
LISP code than when I write Pascal code, yet the latter has lots of compile-
time type-checking strength.  I think that part of the reason is that clean LISP
is an applicative language whereas Pascal is imperative, the difference being
(if you're not familiar with prog lang lingo) that Pascal has a store (i.e.
variables) whereas clean LISP does not ("clean" LISP does not have any of the
imperative features like (GO ...) or (SET ...)).  I think that type checking
is most important for helping you keep track of the store, which is a nasty
undisciplined construct in the absence of some sort of type structure.
This is not to say, of course, that some type discipline is not useful in an
applicative environment (see, for example, the applicative subset of Russell).