3 ms·
> Also the point of SICP being language agnostic is fairly false. I remember reading a bit of Eli Bendersky's SICP blog posts[1], where he started with the pre
by AgentConundrum 15y ago
> Also the point of SICP being language agnostic is fairly false.
I remember reading a bit of Eli Bendersky's SICP blog posts[1], where he started with the premise that he was going to work through SICP using Common Lisp rather than Scheme. I think that lasted through about half of the first chapter before he moved back to Scheme because he found it too hard to handle the differences between the two - I don't remember what specifically Common Lisp was lacking, but I remember he made it seem like a huge stumbling block.
[Disclaimer: This comment is based on a half-remembered perusal of only a couple of blog posts well over a year ago. Contents may not adequately reflect reality.]
Edit: I may have been badly misremembering. From Eli's "Conclusion" post[2]:
> Also, I originally planned to reimplement all the code do all the exercises in Common Lisp. Later I changed my mind and decided to use PLT Scheme for some of them. Eventually, I’ve been using both languages interchangeably, which is a good thing, as I got some practice with both.
[1] - http://eli.thegreenplace.net/category/programming/lisp/sicp/ http://eli.thegreenplace.net/category/programming/lisp/sicp/
[2] - http://eli.thegreenplace.net/2008/04/18/sicp-conclusion/ http://eli.thegreenplace.net/2008/04/18/sicp-conclusion/
- llimllib 15y agoI got up to exercise 1.18 in Haskell, and didn't have any problems with it. I knew very little haskell when I did it; I know less now. Doing the exercises in both Scheme and Haskell was a fun exercise; I should go back to it at some point. https://github.com/llimllib/personal_code/blob/master/haskell/sicp/chap1.hs https://github.com/llimllib/personal_code/blob/master/haskel... edit: the excercise the author is talking about is 1.11; my answer starts on line 51. The haskell is pretty!
- eliben 15y agoWhen I started the project, I preferred CL over Scheme. Later, however, I had some experience with PLT Scheme and really liked the programming environment, so I decided to give it a try. I figured that using both languages will help me understand the differences between them better. It was not some serious limitation of CL, in any case.
- AgentConundrum 15y agoThanks for clarifying, Eli. As I said in my update, I was apparently badly misremembering a comment on your blog regarding the use of CL. You've actually inspired me to take up a similar SICP reading/blogging project, though I'm hesitant for two reasons. First is the concern over the depth of the material. I don't have a CS degree and I'm mathematically out of shape (and I never even did a calculus class), so I'm concerned about making it to a certain point and then completely failing to be able to continue on. Second is a concern about copyright and plagiarism. I've never been clear where the line is with regards to the sort of summarizing knowledge of a whole book, since paraphrasing is still plagiarism AFAIK. Less of an issue with SICP, I'm sure, since you ended up with a signed copy, but I'm a very risk-averse individual and like to know exactly where I stand before attempting such a thing. I'm sure that your blog will be a great resource for me when I do my version of your project, so I'd like to thank you in advance for having blazed the trail for me.
- Jach 15y agoIANAL. Plagiarism is only relevant in a classroom environment where you aren't doing work in the expected way. Copyright infringement is different. In the case of SICP, the entire book is available online for free, as far as I know the book doesn't contain answers to all of the exercises (so most work you do there is your own), and many of the code snippets are small enough that I don't think they would withstand a copyright claim in court. (It'd be like trying to copyright "for (int i = 0; i < MAX; ++i)".) Even if you blatantly copy out large sections from the ebook for a blog entry, I'm still pretty sure there's a strong fair use claim to be had. (I guess it would be weakened if your blog serves ads.) Cite your source and you'll be alright. Of course, looking at the actual page is better for solid legal ground http://mitpress.mit.edu/sicp/ http://mitpress.mit.edu/sicp/ . It's licensed under http://creativecommons.org/licenses/by-nc/3.0/ http://creativecommons.org/licenses/by-nc/3.0/ so again you're fine to redistribute and modify if it's non-commercial. re: Calculus, you could always watch a few videos at Khan Academy. ;) I don't remember needing all that much calculus, but if you don't have a concept of derivatives or integrals then some of the earlier examples of higher order functions will go over your head. You could watch some online lectures here: http://academicearth.org/courses/the-structure-and-interpretation-of-computer-programs http://academicearth.org/courses/the-structure-and-interpret... which don't ramp up the difficulty as steeply.