4 ms·
Well, 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", ak
by rcthompson 12y ago
Well, 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