cdwilli@kochab.cs.umbc.edu (01/24/90)
I just got my copy of Common LISP, Second Edition. It's Family-Bible size -- twice the number of pages as the first edtion! How'm I supposed to learn LISP when I can't even fit the text into my briefcase? Can you imagine what's happening at the universities? "Yeah, I thought about taking LISP, but C's a better language. It's smaller, more portable." "Now, class for exercises using LISP..." "We took LISP off our computer. We decided that it was taking up too much room; why, just look at the size of the Reference Manual!" ;-)
lgm@cbnewsc.ATT.COM (lawrence.g.mayka) (01/24/90)
In article <2712@umbc3.UMBC.EDU> cdwilli@kochab.cs.umbc.edu () writes: >I just got my copy of Common LISP, Second Edition. It's Family-Bible >size -- twice the number of pages as the first edtion! How'm I ANSI Common Lisp has, by my reckoning, increased the number of unique syntactical constructs from 26 to 31 (29 special forms, the form for macro calls, and the form for function calls). Individual macros and functions play the same role as the standard library functions and header file definitions of ANSI C. As I understand it, the spirit of Common Lisp is that common idioms employed in multiple application areas ought to be standardized (i.e., incorporated into the language definition), for several reasons: a) To prevent gratuitous incompatibility and nonportability. b) To reduce the need to continually invent, implement, and optimize equivalent idioms from one project or company to the next. c) To allow for implementation-specific optimization (beneath the interface). Some Common Lisp implementations - e.g., those for computers not having virtual memory - often omit such macros and functions from the base memory image, loading them automatically into the running system from disk on first reference. Similar arguments for portability, reuse, and optimization apply to Common Lisp's predefined data types such as RATIO, COMPLEX, BIT-VECTOR, HASH-TABLE, PATHNAME, and STREAM. ANSI Common Lisp also embraces some of the functionality of a programming environment, or even an operating system. Examples include ED, COMPILE, LOAD, TRACE, STEP, INSPECT, DISASSEMBLE, RENAME-FILE, and DELETE-FILE. Portability of basic system interfaces was, I assume, a primary goal in defining these. My suggestion is that people try not be intimidated by the physical size of CLtL/2e, but to consider it as a reference work and to learn Common Lisp via one of the tutorial-style books on the market, such as "Lisp - 3rd Edition" by Winston and Horn, or even an on-line tutorial such as is included in the $80 Golden Common Lisp Student Edition (for IBM-compatible PCs). Lawrence G. Mayka AT&T Bell Laboratories lgm@ihlpf.att.com Standard disclaimer.