Land of Lisp: Learn to Program in Lisp, One Game at a Time! is a book about lisp programming. If you are into programming for fun, artificial intelligence, role playing games, or an emacs user, you should take a look at this book. I’ve got some info on this book as well as a few others for the budding emacs enthusiasts.
Land of Lisp teaches the lisp programming language using the development of games as a focal point.
Lisp is one of the oldest programming languages, and occurs in numerous dialects. The standard form that is taught in Land of Lisp is Common Lisp.
The teaching style in Land of Lisp assumes a fair amount of knowledge of what programming languages are, which is reasonable because if you were not already into programming it is unlikely that you would start with Lisp. The book does an excellent job of highlighting the philosophical and technical aspects of the language so by the time you are done with it you feel like you’ve learned a lot more than just how to write some code in what by many accounts is a rarely used esoteric language.
Except that it isn’t, of course. There is quite a bit more lisp code in use than you might expect, and in places that you might be surprised to learn (read the book to find out). And, of course, lisp is the language in which the One True Editor is written, and the language that is used in that editor (emacs) by users to customize and modify its behavior.
Which brings us to the other two books that I wanted to mention.
If you want to learn lisp because you want to mess with your .emacs file, Land of Lisp is probably the third book you should read. It is not really about that kind of lisp, but what you learn in Land of Lisp would still be helpful.
Learning GNU Emacs, Third Edition is probably the closest thing to an emacs manual that is both current and very accessible. By the time you are done reading this book you’ll know more about emacs than you’ll probably want to know, even though really complex emacs lisp programming is not covered. Another way to put this: With this book under your belt, you’ll feel much less lost in places like the emacs wiki and all those great but very technical emacs blogs (like this one) that are out there which assume a certain amount of knowledge.
If you want to get into messing with your emacs at a higher level you can try Writing GNU Emacs Extensions. This book is actually available as an iPhone app, believe it or not. (Not in HD for the iPad, however). Bob Glickstein’s book goes into much more detail about wrangling your emacs to do amazing thing that only you thought of and only you would want to do, but it does so by walking you through a number of fairly obvious fixes staring with simple things like changing key bindings and working through making minor and major modes, error recovery, and messing around with lists.
As long as we’re on the subject I should mention the GNU Emacs Manual by the inventor of emacs, Richard Stallman. GNU Emacs Manual, For Version 21, 15th Edition. As you can see from the title, the most current book is for version 21, but emacs is on version 23 and moving past that. That hardly matters because the point of the manual is not to tell you the latest, but to get you past the initially steep learning curve this highly versatile editor gives you.
The problem with many emacs sources including Stallman’s book is that they rely on, push, and assume you will like (after a few weeks of torture) the emacs philosophy. But you won’t. The emacs philosophy is deeply flawed and needs to be overhauled. I’m working on a post that follows up on that rather tendentious statement, and don’t worry, I’ll make good on it. I found Debra Cameron’s Learning GNU Emacs, Third Edition to be far less insistent on drinking that particular Kool Aid and therefore much more useful. By the way, my copy of Stallman’s book is a first edition. I think it might be in blue mimeograph.
And finally, I want to mention Robert Chassell’s “An Introduction to Programming in Emacs Lisp.” I think this is considered to be a very good book for this purpose, though I’ve not used it much. One very interesting thing about it is this: You can go to a bookstore, say Amazon.com, and find a copy of An Introduction to Programming in Emacs Lisp for about 75 bucks. Or, you can click here and find several options for downloading it for free. Which is obviously some kind of joke. And the emacs community does have a sense of humor … it would have to! One of the neat emacs features pointed out in the first edition of Stallman’s book is a special minor mode that goes along with the system then used for checking email from emacs. This put a sentence or two of anti-American pro-Communist or otherwise subversive text at the end of every email in order to obviate the process of sifting through everyone’s email for subversive text. Stallmann’s idea was that if every single email contained randomly generated subversive text the NAS could go home.
As it turns out, however, even though emacs can be made to serve as a virtual operating system and do everything from email to math to desktop publishing to making coffee, even die-hard emacs users have mostly switched to other (equally esoteric) methods of handling email, to the extent that Debra’s book only glosses over the possibility and recommends you not bother.
A true emacs user will have all of these resources at hand, in print, in ebook form, or as an a ASCII text file, as needed.
OK, time to C-x C-c.
Can you say “List of LISP” five times fast?
It would be worse if this was about the many varieties of lisp, enumerated in different ways. Then it would be “Lists of Lisps”
ANSI Common Lisp by Paul Graham. The best introduction to Common Lisp as a general-purpose programming language. A bit hard going for inexperienced programmers, however very helpful indeed!
“I’m working on a post that follows up on that rather tendentious statement…”
No rush, but I’m very interested in your thoughts on the emacs philosophy.