Using SICP JS with the IDE of your choice
NPM package sicp
The Node.js NPM package sicp
provides all predeclared functions and constants assumed by the SICP JS textbook. Consult the README of the NPM package sicp
for installation instructions.
The functions and constants are documented here.
Programs of SICP JS
The programs of SICP JS are available as a zip file.
Caveat
SICP JS relies on a JavaScript feature called “proper tail calls”. This feature is specified by the JavaScript standards since 2015, but unfortunately as of 2021, most web browsers do not comply with this aspect of the standard. Node.js does not comply, either, and as a result, some programs in SICP JS will not scale when using the package sicp
in Node.js in the way they should. This will not affect learners in a major way.
The Source Academy avoids the problem by transpiling the SICP JS sublanguage of JavaScript to JavaScript such that the resulting implementation performs proper tail calls regardless whether the underlying JavaScript implemementation has proper tail calls.