4 ms·
Slightly off-topic, I'm an Emacs user and interested in learning Lisp for not-just-Emacs reasons. Can anyone suggest a good learning resource? It doesn't real
by broodbucket 12y ago
Slightly off-topic, I'm an Emacs user and interested in learning Lisp for not-just-Emacs reasons. Can anyone suggest a good learning resource? It doesn't really matter what Lisp it's for, as long as the concepts apply to all implementations of my brackety confusion.
- rcthompson 12y agoWell, I suppose the standard answer, if you have time to do the equivalent of a college course, would be "Structure and Interpretation of Computer Programs", aka SICP[1]. On the more practical side, you've got Steve Yegge's "Emergency Elisp" article[2]. In terms of your "brackety confusion", that's just a syntax issue. Just remember that you only have function calls, not anything else, and that functions appear inside their parentheses. Instead of infix operators like "+", you have functions; instead of control structures like if/while, you have functions (special functions called macros, but you don't care about the difference yet). So in your head, just convert an "operation" like "1 + 1" to a function call using the "+" function: "+(1, 1)"; then put the function inside the parentheses instead of outside and drop the commas between arguments, and you have a valid Lisp expression: "(+ 1 1)". Really, try evaluating that in the Emacs scratch buffer. Other than that, the syntax is pretty much the same as any other language. There's just less of it. If you did everything in Python/Perl/whatever using just functions, it would already look a lot like Lisp. [1] http://mitpress.mit.edu/sicp/ http://mitpress.mit.edu/sicp/ [2] http://steve-yegge.blogspot.com/2008/01/emergency-elisp.html http://steve-yegge.blogspot.com/2008/01/emergency-elisp.html
- drothlis 12y agoIf you have 30 minutes: Steve Yegge's "Emergency Elisp". http://steve-yegge.blogspot.co.uk/2008/01/emergency-elisp.html http://steve-yegge.blogspot.co.uk/2008/01/emergency-elisp.ht... If you have 6 months: Structure and Interpretation of Computer Programs (highly recommended, I enjoyed it a great deal). http://mitpress.mit.edu/sicp/ http://mitpress.mit.edu/sicp/ Emacs-specific tutorial on using the built-in help and the elisp packages' source code when you need to figure out how to do a particular customisation: http://david.rothlis.net/emacs/customize_c.html http://david.rothlis.net/emacs/customize_c.html
- ubolonton_ 12y agoPractical Common Lisp: http://www.gigamonkeys.com/book/ http://www.gigamonkeys.com/book/
- andrewchambers 12y agohttp://www.4clojure.com/ http://www.4clojure.com/
- dancecodes 12y agogood reason to learn: lisp allow hot code reloading that can make only erlang, forth as I know...
- UNIXgod 12y agoThe little books are great for a beginner.
- tomwalker 12y agoThe Little Schemer is an easy and short introduction. http://mitpress.mit.edu/books/little-schemer http://mitpress.mit.edu/books/little-schemer
- eru 12y agoJust be aware that Emacs Lisp is a rather ugly and (nowadays) non-conventional Lisp. Good modern Lisps are Racket and Clojure. SICP is good, but if that's too hard, you can try "How to design programs" which starts from scratch.
- lispm 12y agoEmacs Lisp is a relatively standard Lisp, slightly oldish. > Lisps are Racket and Clojure Racket and Clojure are languages derived from Scheme or Lisp . They are mostly incompatible to other Lisp dialects. Racket and Clojure are completely incompatible with each other or even Emacs Lisp.
- eru 12y agoEmacs Lisp used to be close to `the' standard Lisp. But since a few decades all Lisp have static scoping by default now. Racket and Clojure are both Lisps, and, yes, they are incompatible. They are different, if related, languages. Our local guru, Paul Graham, has his own (incompatible!) Lisp dialect, Arc, loosely based on and implemented in Racket.
- lispm 12y ago> Emacs Lisp used to be close to `the' standard Lisp. But since a few decades all Lisp have static scoping by default now. Static scoping is nowadays supported in Emacs Lisp.