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

I'm close the finishing the last major chunk of the book. Working with two colleagues for around two hours a week, its taken us nearly a year to get this far. Of course, we did every exercise, and lost a lot of time trying to work around incompatibilities between standard Scheme and the interesting corners of DrScheme [now DrRacket - mcons, I'm looking at you]. Now we use mit-scheme and I wish we had done so from the very beginning.

I don't think the book is perfect. I found the structure of Chapter 4, where a Scheme interpreter is built, confusing and irritating. The exercises are interspersed with the text in a way that doesn't allow you to test any of your solutions unless you read ahead to get more infrastructure. This seems deeply unREPLy to me. Once I had typed in enough of the supporting code to actually run my proposed solutions, and pulled some hair out debugging my broken code, I had some marvellous moments of epiphany. That Ahah! is what maks the book's reputation, and what makes the effort worthwhile. But it could have been better.

As a group, we're not sure where to go next.

My day job involves hacking my way around >>10e6 lines of C. Even now, I don't feel that I understand the idioms of Scheme-in-the-Large in anything like the same way. I'm not sure any book can give you that. I probably need to write some code to solve a real problem first.

So if any of you have completed [the] SICP, what did you read next that seemed to be a good continuation of your education?

c



I definitely agree that there are a few parts of the book which could be re-ordered so that you could always play with the exercises right away without reading ahead. Really good advice for someone about to start is to explore ahead before getting bogged down in the exercises for a particular section, like the metacircular interpreter and the compiler. I think the end of Chapter 2 also requires some destructive put/get functions which aren't introduced until Chapter 3.

I'm reading Christian Queinnec's Lisp in Small Pieces now, and I think it's a great next book after SICP. It picks up right away with a metacircular evaluator very similar to the first one in Chapter 4, but diverges from SICP to explore different semantics, like Lisp-1 vs Lisp-2, dynamic variables, exceptions and control flow with catch/throw and continuations. Later chapters address macros and compilers I think one to bytecode and another to C.

It's very well written and the translation from French is clear if a little bit flowery. Highly recommended, but watch out for the Scheme code from the author's site. I don't think it's been touched since the early to mid 90s and I had a rough time trying to get it to run in any "modern" Scheme. I'm just translating the code as I go to run in Racket, which is much easier than trying to figure out what a thousand line Makefile does, or re-write some strange non-hygienic macros. If someone has advice for running the LiSP code, please speak up!

http://pagesperso-systeme.lip6.fr/Christian.Queinnec/WWW/LiS...


It's remains just an aspiration of mine to do what you have done.

Something I have actually done is to faithfully work my way through this book http://www1.idc.ac.il/tecs/

There are a lot of special moments in there too.




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

Search: