Download Lisp to my brain.
If I were a character in the movie The Matrix, I could ask an operator to download a program to my brain so I could fly a helicopter or something. I would like to learn Lisp and, well, download it to my brain as rapidly as possible so I can start working with it to write a roguelike. I am looking for good online resources, preferably including a sand-box or similar. I learned to code my websites by having a template (gifted to me by a friend) and playing with it and I still learn new things when I want/need to do something new on my sites. I know a little (X)HTML and CSS already and had intro to VisualBasic about 7 years (which I don't particularly remember, of course).
Yes, I know I can google this. But since I know nothing, I can't judge the quality of the sources. So I am hoping folks here will indulge me.
Thanks.
PS: Am I supposed to do an intro? I just joined today and this is my first post.
Assuming this isn't a Joke:
Lisp IDE for Windows (the easiest and most basic; use it just for your first 30 days, after that move to SLIME.)
http://www.daansystems.com/lispide/
Implementations (both work with LispIDE above)
http://clisp.cons.org/ (byte compiled, fast)
http://sbcl.org (natively compiled, multithreaded, industrial strenth)
Books
http://www.cs.cmu.edu/~dst/LispBook/ (easiest intro)
More here http://lisp.org/alu/res-lisp-education
No, this isn't a joke. Thank you for replying.
You might wanna revise that "download to brain" requirement. Programming is a skill learned and polished over years; none of us are Johny Mnemonic ;-)
Just hoping to convey a concept. I already write code by hand, just not programming languages. :-)
Thank you!
Lisp nowadays comes in two main flavours (dialects, technically): scheme and Common Lisp.
I prefer the former and my favorite implementation at the moment is plt-scheme (http://www.plt-scheme.org/).
From the website above you can download the distribution of the language for your platform. It also has a very nice IDE which has been designed primarily for learning.
Here's a book to get you started (it is fully available online): http://www.htdp.org/
Happy hacking!
Thanks! Any reasons why you prefer scheme to Common?
From http://paulgraham.com/lispfaq1.html:
---
Which should I learn, Common Lisp or Scheme? What's the difference?
Common Lisp is powerful but ugly. Scheme is small and clean, but the standard only defines the inner core of the language. If I had to deliver an application I'd probably use Common Lisp; if I were teaching a course I might use Scheme (but with Common Lisp macros).
---
See also (more detailled): http://community.schemewiki.org/?scheme-vs-common-lisp
For me it's mostly an aesthetic thing. It's difficult to explain.
I just find simple things more elegant than and Scheme is terser and all the implementations (that I know of) are lighter than CL. It' s also very easy to embed in C code.
I'm by no means an expert, though.
In addition to "How to Design Programs", there is also the excellent "Structure and Interpretation of computer programs", also fully available online (and also from MIT): http://mitpress.mit.edu/sicp/
SICP is a very very good computer science book, for beginners as for advanced programmers. It uses Scheme, but it is much more than a Scheme book.
(I haven't read HTOP, so I can't say, but it also has a very good reputation. +1).
I too recommend SICP. It is great, especially if you haven't been exposed to much CS stuff already.
I have found newLisp : http://www.newlisp.org/ very good. It runs on all common platforms and the net-eval mechanism is excellent for distributed computing. For all out grunt and 64 bits, you might want to take a look at picoLisp-64 http://www.software-lab.de/down.html
Don't get too hung up about the Common Lisp vs. Scheme vs. the other 2763 Lisps arguments. Once you understand the concepts only the details vary and you can implement whatever you find works best for you. After all, Lisp is a "programmable programming language". Read some of Paul Graham's essays to get a feel for the power of macros.
Clojure is another important dialect which has recently arrived, has good reputation and a growing following. You can start with the following resources:
http://clojure.org/ is the place to keep track of the language progress (maintained by the creator of the language).
http://jnb.ociweb.com/jnb/jnbMar2009.html is a great introduction in the language.
http://en.wikibooks.org/wiki/Clojure_Programming and http://en.wikibooks.org/wiki/Learning_Clojure are also helpful resources for a beginner.
Offline, there is a recent and very good book from the Pragmatic Bookshelf, http://www.pragprog.com/titles/shcloj/programming-clojure. Another book is being prepared by Apress, http://www.apress.com/book/view/9781430272311, obviously I cannot say how good it is going to be at this point.
On a more general note, SICP (http://mitpress.mit.edu/sicp/) is a classic and a great introduction in the world of Lisp, functional programming and programming in general. It uses Scheme as the basic language material. A more recent book, Practical Common Lisp (http://gigamonkeys.com/book/) is an introduction in Lisp on the basis of the Common Lisp dialect.
This is just to start, there are more resources for all levels.
Good luck!
For an online sandbox, you can use the Lord of the REPLs from Google: http://lotrepls.appspot.com/.
You can evaluate expressions (= program) in 2 Lisp dialects, Scheme and Clojure, directly in your browser! (You can also use other non-Lisp languages, notably Ruby).
Thank you everyone. This thread is the best internet discussion experience I have had in a long time. :-)