Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10 5/3/83; site utcsrgv.UUCP Path: utzoo!utcsrgv!kramer From: kramer@utcsrgv.UUCP (Bryan M. Kramer) Newsgroups: net.lang.lisp Subject: Re: Lisp books, Franz Lisp, Help Message-ID: <2338@utcsrgv.UUCP> Date: Tue, 27-Sep-83 10:19:15 EDT Article-I.D.: utcsrgv.2338 Posted: Tue Sep 27 10:19:15 1983 Date-Received: Tue, 27-Sep-83 10:35:23 EDT Organization: CSRG, University of Toronto Lines: 33 In-reply-to: <350@wateng.UUCP> Good books are: 1) "Functional Programming in LISP" by Hector Levesque (its not really published but it is available in the U of Toronto textbook store. This is probably the best ... 2) Charniak E., Riesbeck C., McDermott D. "Artificial Intelligence Programming" Lawrence Earlbaum Associates, Hillsdale, N.J. 1980. Once you have read 1), this book really shows you how to take advantage of LISP. Comments: 1) re. CAR, CDR: I think that names don't really matter, you have to learn the concepts involved. Are words like "do" or "int" or symbols like "{}" any more meaningful? 2) re. parentheses: if a LISP function is properly paragraphed, their presence does not affect the readability of code. Both emacs and vi provide facilities which make balancing parentheses trivial. 3) reference 2) above describes some useful macros which enhance readability. 4) re. scope rules: LISP is simply call by value. If you are careful with the use of non-local variables, dynamic scoping does not interfere. Non-local variables are a pain in any language. 5) LISP is as much an environment as a language. Debugging, especially, is much easier in LISP than in any other environment + language available to me. When I have to program in other languages I find that I spend much of my time duplicating things LISP offers as primitive.