Hacker News new | past | comments | ask | show | jobs | submit login
Land of Lisp: Learn to Program in Lisp, One Game at a Time (amazon.com)
139 points by dpapathanasiou on Sept 24, 2009 | hide | past | favorite | 59 comments



Hi- Just saw this post- this is my book...

I'm finishing the last chapters this week and then there is still tons of editing ahead- The release date will be March next year!

It's going to be a FAT book with lots of games, will cover all the interesting parts of Lisp programming, including full coverage of functional programming, macros, and a lot lot more. Also, it has a zillion cartoons and illustrations.

I wanted to write a Lisp book that puts FUN first- I hope you will enjoy my book!

- Conrad Barski


do you need any proof readers? I have already pre-ordered but I am so excited and would love to lend a pair of eyes if you need it.


Is a Table Of Contents available anywhere? There isn't one on Amazon.


table of contents

Section I - Lisp is Power

1. Getting Started

2. Our First Lisp Program!

3. The Basic Philosophy Behind Lisp

Section II - Lisp is Symmetry

4. Conditions

5. Learning Lisp Text and Console Programming... By Building a Text Game Engine!

6. Interacting with the World: Reading and Printing in Lisp

6.5. Lambda- A Function So Important It Deserves It's Own Chapter

7. More About Lists

8. This Ain't Your Daddy's Wumpus

9. Advanced Data Types and Generic Programming

Section III- Lisp is Hacking

10. Loop and Format: The Seedy Underbelly of Lisp

11. The Format Function

12. Working with Streams

13. Let's Create A Web Server!

14. Land of Lisp- Secrets of the Seven Guilds

Section IV- Lisp is Science

15. Functional Programming is Beautiful

16. Macros

17. Dice of Doom- Advanced Techniques

18. Making Dice of Doom More Fun

(this is an old TOC- There'll be a few more chapters not in this list)


Looks great. Nice work.

Will you be covering integrating with any graphics libraries (say OpenGL or similar)?


The final game is a fully graphical game. I had to decide what method to use to bring graphics into Lisp that would be the most valuable to learn. Since almost everyone can benefit from learning the nitty gritty of how the web works, I used the following steps:

   Step 1: Write REPL game
   Step 2: Write a web server from scratch using sockets
   Step 3: Write an SVG library
   Step 4: Implement an inline SVG-based HTML5 browser frontend for the game


Damn. Lisp and HTML5 in the same book. Who woulda thought... :-p


If you're taking votes I'd love to see some OpenGL demos using something like the cl-opengl bindings.

I don't know the extent of your book, but navigating asset management has been a bit of a challenge. I know there's a few libraries out there but docs/examples are at a premium. I'm using cl-devil and looked at freeimage, also looking for 3d model importing and the like.


what motivated you to write this book? which books inspired you?



Good old Basic Computer Games.

I was so disappointed by what a racist David Ahl turned out to be. (He was responsible for the incredibly disrespectful "Ninja-Endo" character in late-80s Atari comics.)


Do you have any more information on that? I looked around and all I could find were these (fairly racist) asian caricatures in an Atarian Magazine comic strip:

http://www.atariage.com/magazines/magazine_page.html?Magazin...


That's what I was referring to. He also has a web page:

http://www.swapmeetdave.com

On it he seems to express rather conservative and religious views; make of that what you will.


Interesting historical detail.


thanks!


Dr. Barski has been at it for ages; see his site.

http://lisperati.com/

Conrad, I am from the D.C. area; I have been putting off coming to D.C. Fringe for ages until I got a call from Australia and I was told I was on next week's flight. What a bummer. I lived in Arlington Virginia (on Columbia Pike, right near Falls Church and Alexandria) and I worked in the city at 17 and N. How on bloody earth did I miss a Lisp meeting I would never understand; where I live, I am lucky to find a computer programmer.


Thanks Conrad. Looks Awesome! I'll buy it as soon as it becomes available!


I just had a look at lisperati! Pretty cool and straightforward tutorial (LISP spells). It would be even cooler if there was another option detailed to run lisp apart from franz telnet (did not work when I tried) - such as slime+clozure CL or lisp in a box.

Also, tutorial starts with something like:

(setf objects '(whiskey-bottle bucket frog chain))

I've installed sbcl and clozure CL with slime especially to try this out (haven't lisped around in ages)... both won't cooperate if there is no defvar for objects before setf. Also, I had a buffer with lisp-mode and C-c C-c to monitor repl in another window, so I had to prepend every output with (print (x))... just thought you might wan't to know.

Cool stuff.


Thanks Keyframe- I will look into the Franz telnet issue... wasn't aware it was down.

Otherwise, this tutorial is getting a bit long in the tooth and I should probably give it a refresh sometime soon. The setf issue is a known issue for some Lisps- I should have used defparameter instead of setf, but I was still pretty green many years ago when this tutorial was written.


I tried for a while (unsuccessfully) to get any sort of graphics working with Lisp. Do any of the games in here use graphics? I feel like some really awesome "math art" could be made with Lisp.


You should check out lispbuilder-sdl or RLX. (I'm also working on CL bindings to Ogre but they're not really ready for public consumption.)


lispbuilder-sdl is fairly mature to the point that it even has a user manual

http://code.google.com/p/lispbuilder/wiki/UsingLispbuilderSD...


SVG is XML-based and it's very easy to output graphics from your code from any programming language. There's a cl-svg library (http://code.google.com/p/cl-svg/) but I haven't tried it. There's also cl-cairo2 (http://www.cliki.net/cl-cairo2) which is based on the cairo library.

For realtime 3d graphics there's cl-opengl (http://common-lisp.net/project/cl-opengl/). I'm using it right now with sbcl and the glut wrapper (cl-glut). It comes with some examples too.


If you use an embedded lisp such as ECL or PLT Scheme, you can take advantage of whatever graphics facilities the host offers, and code in lisp with a "live" repl.

This project might get you started:

http://createuniverses.blogspot.com/2009/09/qtimagine-skelet...


Yes- I render out graphics to SVG and graphviz and do stuff to interact with a web browser to display it.


It seems pretty good. After I checked your site and your linkedin profile. I can't help ask this question: Do you think your training in M.D. help your working in Physician Software?

I always feel there will be a lot of improvement in software for physicians and lawyers and other professionals. But I dont' have background there and I don't have a clear understanding of the problem domain. Will an education background in those area help a software developer?


Sure, it's useful to be able to talk to people on their terms and to have the credibility of a degree. Beyond that, software development is still software development, so the actual "work" still ends up being the same, no matter what domain you work in. That said, I think both the legal and medical fields have an enormous IT future that I highly recommend pursuing- There's still a lot of innovation possible.


Nice work, brother!


Wow! If I'm reading this http://lisperati.com/logo.html right, you're the one who came up with the "made with secret alien technology" logo. I love that logo. :)

BTW, on that logo page, you mention that Scheme is your favorite Lisp dialect. If that's so, then why write your book to be about CL instead of Scheme?


sounds great

don't hurry, good things need their time


Looking forward to it!


Every time I stumble upon this I get excited. I'm really looking forward to it.


Is it available for preorder in the UK? I would love to get one.



Cool, thanks, I couldn't find it!


Very nice. Pre-ordered!


please, please have a Eastern Economy Edition.


Hi folks, I'm working with Conrad on editing this book. If you're interested, you can keep your eye on the Land of Lisp page at the No Starch Press website:

http://nostarch.com/lisp.htm

We'll have an updated table of contents up fairly soon, and you'll be able to pre-order it as it gets closer to release. We'll also probably post some advanced samples as we move forward, so be sure to check back every once in a while.

Conrad's doing a great job, and it's going to be a really fun book!

Keith Fancher, No Starch Press


Barski's website is also worth a visit: http://www.lisperati.com/


It's worth a few visits. There's a ton of really interesting content on Dr. Barski's site, and the illustrations are fun :D


Funny, I just bought the old classic that I never got a chance to read:

"Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp" by Peter Norving

http://www.amazon.com/Paradigms-Artificial-Intelligence-Prog...

Guess Lisp is 'really' making a come back.


It says it contains an evolution simulator? Oddly enough, I was thinking of something like this as a project to learn Clojure. Anyone know what that section of the book was like?


I might be able to answer that :)

It's an implementation of Dewdney's classic article "Simulated evolution: wherein bugs learn to hunt bacteria"

What's cool is that it lends itself to a very pithy implementation in Lisp that runs right in the REPL, with ASCII graphics.


It hasn't been published =)


What is the pre-requisite for reading this book? I'm mainly curious to see if this will be a useful way for beginners (such as kids) to start learning computer science. Given that many of us learnt computer science by writing games and other fun utilities, I'm hoping this will be a good CS beginner's book (and a fun one at that).


I tried to make it accessible to beginning programmers, but some advanced stuff is covered in this text and I it would have been hard to assume zero programming knowledge and cover everything. I think you'd need at least some programming experience in some other language in your past to feel comfortable with this book.


I'm angry I have to wait a year to buy this book!


Sorry it's taking me so long :)


Better next year then never! I wish the authors of all the books we are interested in answered all of our questions so quicky and personally. Keep up the great work.


Do not forget to post here when the book is released. I will be sure to buy it by then.


Is this Common Lisp, or what?

I'm personally learning some Clojure at the moment and loving it so far.


Yes, it's a book on Common Lisp. However, I tried to emphasize techniques that are relevant for the "modern dialects" like Clojure.

For instance, I implement a Clojure-style sequence library using Lisp macros towards the end of the book to implement lazy evaluation for a boardgame AI engine.


Excellent, thanks for the additional information.


Sounds like an excellent approach. Thank you!


@Dr.Code - it seems that this book could be a tool for people to learn how to program, not necessarily targeting people who already know how to program and just want to learn Lisp. Am I correct?


I tried to make it readable for beginners, but I'm hesitant to say that it would be an easy book for someone who truly has _zero_ past programming experience.


This is awesome! I have it in my wish list ready to buy as soon as It's out. I'll also make sure to be in the next Fringe DC meeting.


Would a beginner be able to pick up this book easily? Would someone who knows of/about functional languages but not used them be able to pick up this book easily?


Never been interested in learning lisp but from the comments and the table of contents of the book I may give it a try.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: