From: John D. Burger
Subject: Re: Common Lisp, SOME, EVERY...
Date: 
Message-ID: <1991Feb27.160615.8328@linus.mitre.org>
···@aero.org (Scott "TCB" Turner) writes:
>Once upon a time I wrote:
>>A language that has a 1000 built-in functions (constructs) is doomed.
>>People don't have the cognitive mechanisms to deal with that number
>>and variety of mechanisms.
>
>A number of people have responded to this with comments of the sort 
>"C has immense numbers of functions in libraries, and people deal 
>with that..."
>
>I don't think comparing Common Lisp's plethora of built-ins with
>library functions in other languages is completely relevant.  For the
>most part, library functions are not general programming constructs.
>They perform specific computing tasks such as i/o, database retrieval,
>statistical manipulations and so on.

But that's exactly what's going on in Common Lisp.  The language
doesn't have 1000 built-ins that do the same things that C's built-ins
do.  CL gives you explicit functionality that you just don't have in C
(or many other languages).  For example, CL has:

  Many more built-in types
  Explicit run-time typing
  Multiple values
  Real macros
  An explicit representation of environments
  Packages
  A system-independent representation of the file system
    (plus logical pathnames)
  An interface to the lexical analyzer (readtables)
  An interface to the compiler
  Sophisticated condition signalling and handling
  An introspective object system

I want and use all of these things.  C may have shadows of some of
them, but they are not richly represented enough for me (please don't
provide counter-examples).  Which is not to say that some of your
criticisms of specific cases are not well-founded.  There is some
unnecessary repetition in Common Lisp, and there are constructs that
are only there for historic reasons.  I have never seen code that uses
PROG2, and I don't use SETQ, RPLACA or RPLACD.  I have no use for
LOOP, pretty printing, or most of the FORMAT sublanguage (which is
Turing complete, isn't it? :) ).  But what many people don't seem to
take into account is that CL is not just a rebinding of the same
functionality provided by C.  To be only somewhat facetious, I think
comparing the sizes of Common Lisp and C is like comparing the sizes
of C and a RISC instruction set.
--
John Burger                                               ····@mitre.org

"You ever think about .signature files? I mean, do we really need them?"
  - alt.andy.rooney
From: Jeffrey Mincy
Subject: Re: Common Lisp, SOME, EVERY...
Date: 
Message-ID: <1991Feb28.224110.25217@Think.COM>
In article <·····················@linus.mitre.org> ····@mingus.mitre.org (John D. Burger) writes:

>I have no use for ... most of the FORMAT sublanguage (which is
>Turing complete, isn't it? :) ).  

nope, format is not turing complete.  It needs a way to assign to 
a variable (and look at the variable).  I spent some time with Guy
thinking about the turing completeness of format.

>John Burger                                               ····@mitre.org


On a more serious note, I think that people are using a confused definition
of complexity.  A language that includes 1000 functions is not necessarily 
10 times more complex than a language that only includes 100 functions.

--

-- jeff
seismo!godot.think.com!mincy