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).