- Paperback: 504 pages
- Publisher: No Starch Press; 1 edition (November 15, 2010)
- Language: English
- ISBN-10: 1593272812
- ISBN-13: 978-1593272814
- Product Dimensions: 7 x 1.3 x 9.2 inches
- Shipping Weight: 2.2 pounds (View shipping rates and policies)
- Average Customer Review: 4.3 out of 5 stars See all reviews (60 customer reviews)
- Amazon Best Sellers Rank: #473,432 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Land of Lisp: Learn to Program in Lisp, One Game at a Time! 1st Edition
Use the Amazon App to scan ISBNs and compare prices.
Frequently bought together
Customers who bought this item also bought
About the Author
Conrad Barski has an M.D. from the University of Miami, and nearly 20 years of programming experience. This includes a stint developing an obscure Atari Jaguar game, and working on many medical software projects. Barski is also an avid cartoonist, having created the popular alien Lisp mascot and many graphical tutorials. He currently develops cardiology software and lives in Washington, D.C.
If you are a seller for this product, would you like to suggest updates through seller support?
Top Customer Reviews
The author, Conrad Barski M.D., takes the reader through a whirlwind tour of Common Lisp and some of the fundamental principles of game development, but interestingly enough it never feels rushed. He accomplishes this feat by sticking to a very important strategy summarized as, "providing something useful at every stage". That is, every example in the book is meant to fit into the context of the larger game examples (e.g. a text adventure, Dice of Doom, etc.) while simultaneously teaching a lesson about Common Lisp *and* provide utility in isolation. It's really a thing of beauty the way that Mr. Barski manages to build useable games piecemeal while teaching important concepts along the way. To illustrate what I mean, let me give an example. The Dice of Doom game example starts with a very small 2x2 board and the program parts needed to represent it. Mr. Barski then builds pieces on top of this substrate to generate positions, while extolling the virtues of decoupling the logic of the game from its representation. It's at this point that the game is playable against a human opponent, but at no previous stage was the code left in a state of flux -- each one was fully amenable to tinkering, tweaking, and experimentation. As an added bonus, the whole implementation by this stage was an incredible 13 lines! (that is actually not true, it's more than that, but by using Common Lisp the implementation was incredibly concise) As if this feat was not impressive enough, Mr. Barski then adds game AI into the mix while explaining the famous minimax search algorithm. He then makes the game more efficient using some techniques common in functional programming, including: closures, memoization, tail-calls (with caveats), and lazy programming. As expected the game itself becomes more feature rich as these lessons progress as stronger AI (i.e. better evaluation) is added, more efficient search techniques are introduced (i.e. alpha-beta pruning), and heuristics are used.
All in all, I am very impressed with the quality of Land of Lisp. As a co-author of a Lisp programming book I appreciate the amount of effort required to pull off a genuinely unique book -- I would be happy to achieve a fraction of the quality of Land of Lisp. This book will appeal to the long-time Lisper and the neophyte and I highly recommend buying it today.
As a teacher of computer science, I tend to prefer teaching out of books with a coherent pedagogy. How to Design Programs is my favorite textbook. Simply Scheme is another good one.
Land of Lisp doesn't seem to be grounded in any kind of modern pedagogical philosophy. Instead, it has a kind of retro feel that is appealing in its own way. This book takes me back to the 80s, learning how to program by typing in complex BASIC programs out of magazines and books. Many of the programs I typed in, I didn't understand 100%. But each time I entered a program, I learned something, and then by tweaking the programs and seeing what it would do, I learned a little more. One of my favorite middle school memories is the time I managed to understand a text adventure BASIC program well enough to write my own. Land of Lisp, in fact, has code for a rudimentary text adventure engine, as well as a blatant "Retro type-in game" of Robots that fits compactly in less than a page of code. So it's easy to see why this book evokes in me a sense of nostalgia.
I think Scheme is a better language for learning programming than Common Lisp. Common Lisp lacks a bit of Scheme's elegance, and it's just harder to get a Lisp environment up and running. But Land of Lisp doesn't make any apologies for Common Lisp's quirks. On the contrary, it revels in the cars and the cdrs, and the convoluted loop macro and format strings which allow you to write some ridiculously concise code (like the retro type-in robot game). The book repeatedly brags about how amazing Lisp is, sometimes to the point of overstating the case for dynamic, functional languages. This is not a book that will attract non-programmers to programming, but for that rare breed of person who was "born to program", the book has an infectious enthusiasm for programming in general, and Lisp specifically.
In my mind, the truly special thing about Land of Lisp is its inspired collection of engaging and well-chosen projects, which are quite a bit different from the run-of-the-mill exercises in a typical textbook. As a teacher, I am glad to own this book because I'm always on the lookout for great project ideas for my students. A book with one great project is usually worth the price -- this book has several! I intend to use these project ideas with my Scheme students. Obviously, the programs translate the easiest to other Lisp dialects, but even if you don't teach Lisp, I'd recommend purchasing this book and trying to port these projects to your favorite language. Orc Battle, for example, should be doable in any object-oriented language. A number of the projects would probably work well in Python. I would advise against trying to tackle these projects in Java (the resulting programs would be too verbose), but a modern multi-paradigm variant of Java, (e.g., Scala), should work just fine.
Most Recent Customer Reviews
I bougth the paperback edtition.Read more
Macros are introduced much later in the book.Read more