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.<p>The translation is pretty direct, so the data structures are more idiomatic to Scheme than they are to JavaScript. I think that's OK.
Add this to Little Scheme/The Little JavaScripter.<p><a href="https://www.crockford.com/scheme.html" rel="nofollow">https://www.crockford.com/scheme.html</a><p><a href="https://www.crockford.com/little.html" rel="nofollow">https://www.crockford.com/little.html</a>
Finally have a free 1 hour and try the site. The site cert. is not valid ... and also if you start with the book, click it does not result in running code. More important the first preface is about Scheme which I think it should be in reverse. My 1 hour up. May try later.
Every now and then a great movie comes out. Then it gets its American remake. It's been proven you can put Al Pacino, Robert de Niro and Bruce Willis in any movie (with predictable results!). This is the book equivalent of an American remake for me.<p>Is Javascript the new pseudocode? Honestly I'd rather be forced to learn a new language to understand a book than to read the book adapted to JS.
I remember finding the SICP in our university’s library as a freshman, me and a friend (both of us had never used scheme) had a lot of fun going through the first chapter together.
I skimmed through the book and think I saw a function declared inside an if-statement. Some JS engines don't like that. And if the engine does support it, the function will be function scoped. To make an if-scoped function, declare it using const f = x => y,<p>nitpick:
I personally prefer to use intermediate variables instead of nested function calls and ternary operator.
Dont like where they state shit (code, programs, processes etc.) isnt comprise of anything.<p>Everything is comprised of something.<p>Please, if you compose something many people could potentionally consume, at least dont be all esoteric and/or mystical about it. This is not a campfire, where everyone tells a story of fairies and shit.
They maybe even more so eager to learn a typical umderlying layer/architecture.