Hacker News new | ask | show | jobs
by brlewis 2375 days ago
What an interesting and ambitious project! Of course the first thing I did was skim the Metacircular Interpreter section to see how they handled the additional syntactic complexity. They gloss over the "parse" function, which is probably the best one can do. That the Scheme function "read" could be implemented by a novice is one of the advantages of using Scheme for SICP and it wouldn't be reasonable to expect an adaptation like this to reproduce the exact experience. I do think it's great the way SICP leads people through doing powerful things with a programming language, and then shows them that they themselves could implement the language they've been using. It gives a powerful feeling of control in an environment (computer programming) that can otherwise be intimidating. I think this adaptation does almost the same thing.

The translation is pretty direct, so the data structures are more idiomatic to Scheme than they are to JavaScript. I think that's OK.

1 comments

> The translation is pretty direct, so the data structures are more idiomatic to Scheme than they are to JavaScript. I think that's OK.

I do wonder if it wouldn't be simpler to write a Scheme interpreter in JS (or take one of the undoubtedly existing ones) and make the book interactive with that.

This version feels more like something that has added value if you already know JS, not so much when you're learning JS

> This version feels more like something that has added value if you already know JS, not so much when you're learning JS

Totally agreed, which I think is a strength of SICP. I know historically it was for learning computer science, but I've gotten so much out of reading it, despite not being a newcomer to the field.