Provides information on the core concepts of Lisp progamming, covering such topics as recursion, input/output, object-oriented programming, and macros, and offers instructions on creating complete Lisp-based games, including a text adventure, an evolution simulation, and a robot battle.
I have been programming in Python, PHP, Java and C for a couple or years now, and I just finished reading Hackers and Painters, so I would love to give LISP a try!
I understand its totally diferent from what i know and that it won't be easy. Also I think (please correct me if I'm wrong) there's way less community and development around LISP. So my question is: what's the best way to learn LISP?
I wouldn't mind buying books or investing some time. I just don't want it to be wasted.
The "final" idea would be to use LISP for web development, and I know that's not so common so... I know it's good to plan my learning before picking the first book or tutorial and spending lots of time on something that may not be the best way!
Thank you all for your answers!
edit: I read Practical Common Lisp and was: ... long, hard, interesting and definitely got me rolling in Lisp, after that i read the little schemer, and it was short, fun and very very good for my overall programming. So my recommendation would be to read first the little schemer, then (its a couple of hours and its worth it) if you decide lisp(or scheme or whatever dialect) is not what you where looking for, you will still have a very fun new way of thinking about recursion!
You might want to start with The Little Schemer as a warm-up. It's not a practical book about writing production Lisp programs, but it's a great book for learning how to think in Lisp.
Pick up The Land of Lisp by Conrad Barski. It is a fun filled introduction to Lisp programming using cartoons and games.
I'm a high school student, and have a bit of programming experience before. Now I want to dive into the world of Artificial Intelligence and Robotics (Making AI programs and games and making robots). Which programming paradigm is better for these subjects? I'll learn a programming language according to that. My school teaches Java, but since its just an OOP language, I don't know if it is suited for the job. Is multi-paradigm language better for these?
Should I learn Python, C, C++, Java or LISP for this?
The fact that you mention both AI and robotics in general means that we cannot give you specific answers and specific reasons without picking something we ourselves are acquainted.
As for the language of implementation, as the other answers say, it depends on project and since you are starting, you should stick with the language and tools used by the community that supports those kinds of projects until you can handle the problems yourself.
From my experience, if you plan on reading books on AI that give sample code then be prepared to read lots of Lisp. While you don't have to learn Lisp to the level of having to program in it, you will need to read it and understand it. I would suggest you get a book on Lisp such as "Land of Lisp" by Conrad Barski.
Since robotics deals directly with hardware, you may find yourself writing device drivers which are almost always done in C, while AI deals with pattern searching which is typically done in a functional language like LISP, ML, OCAML, F#, or a logic language like PROLOG.
Good luck and be persistent.