Learn C and build your own Lisp
buildyourownlisp.com
buildyourownlisp.com
This tutorial/book, written by Jonathan Tang is actually cited as an inspiration in the credits page and is a very nice way to get into functional programming.
http://www.vpri.org/pdf/tr2010003_PEG.pdf
I admit that it's probably not the best thing to learn from at first, but it's truly a thing of beauty.
http://paracamplus.com/spip/?page=livre&isbn=978-2-916466-03...
The fun of seeing a lisp book on amazon's best sellers all of a sudden.
ps: Highly valuable book, it's dense, theoretical but not too much, opens on a lot of other papers, and covers a large space about languages.
On a related note, I found a copy of Adele Goldberg's 'Smalltalk 80: The Language' in a junk shop for 50 cents. When I checked Amazon, the listed price was over five thousand dollars (due to automated bidding bots from rival booksellers).
Sadly :(
I parsed the text into nested lists of Nodes where each node could be a literal or "word" value, a [ ] list or a ( ) grouping. The interpreter treats the nodes as a stream to be consumed one at a time.
When the interpreter is expecting a call to a procedure the next node in the stream should be a word. It can then look up the procedure in a dictionary of built in and user defined procedures. The list of parameters to the procedure indicates how many additional nodes to evaluate when building the values to pass to it.
In the case of variable parameters like a call to SUM you can express it as "SUM 10 20" for the minimum parameters or "(SUM 10 20 30)" for a variable number. The grouping indicates the first element, SUM, is the proc and all the other values are parameters. You could also express it as "10 + 20 + 30" which is evaluated as either "(SUM 10 (SUM 20 30))" or "(SUM (SUM 10 20) 30)" - I can't remember off the top of my head!
http://www.sonoma.edu/users/l/luvisi/sl3.c
The "toy" interpreters that I've found -- Lisp and otherwise -- leak memory. So I'm doing a little bit of research into garbage collection. All in the name of fun and learning.
http://journal.stuffwithstuff.com/2013/12/08/babys-first-gar...
http://t3x.org/s9book/index.html
"Scheme9 from Empty Space"
I've not tried any of these. I'd be interested in someone who's done the lot (Lisp in Small Pieces, the Haskell one, and these two C-created lisps) giving a take on each. Making a lisp or forth seems like a great way to learn [x] thing.
HN threads are supposed to be conversations. It's fine to bring up what you're working on if it's naturally related and makes the conversation more interesting. But it's not fine only to do that, or to contrive opportunities for it; that's not conversation, it's commercials.
Agreed on "a few lines", but why should I buy a whole book on this? I'd really appreciate if the OP tried not to hijack hacker feeds for promotion. At least in my book, (s)he is blacklisted for eternity.
Save the "blacklisted for eternity" melodrama for a worthy cause.
Add in what seems to be a recurring theme of "don't worry, this is hard, ignore the (male?) arse-hats and just do it, and we have an introduction by and for women - a sorely needed part of the landscape.
So, as I judge this book by its cover, it seems a good and worthwhile addition to the community. Please use Hacker News to promote worthwhile additions (especially as there seems to be a free online copy)