Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I happened to learn it bottom-up. One day when I was in college, I picked up a book about implementing a Lisp interpreter in C. I knew C, Pascal and Fortran back then, but nothing about Lisp except it's a language for AI with full of parentheses. I was more curious about writing-an-interpreter-in-C part rather than Lisp itself. At home I typed the C source into my 386 DOS machine, and immediately fascinated by how the simple fundamental idea enabling such a rich language. (The book is in Japanese and I think out of print. Probably there are similar books in English, though I don't know).

Then I went on to reading existing Scheme/Lisp implementations and start hacking it. Aubrey Jaffer's SCM gave me a good idea of run-time data representations of Scheme and a simple mark-sweep GC. I learned how to compile Scheme code by looking the output of Joel Bartlett's Scheme->C. STk (now stklos) showed the power of CLOS-style metaobject protocol by mapping Tk protocol to Scheme object cleanly like a magic. Other implementations I looked at was T, VSCM, Scheme48, ...

I also started writing tools I use at work in Scheme. Solving real problems is, after all, the best way to learn the language.



There's a great article on learning Haskell by writing a Scheme interpreter:

http://halogen.note.amherst.edu/~jdtang/scheme_in_48/tutoria...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: