- Another repo for SICP
- Using Brian Harvey's CS61A from spring 2011: https://people.eecs.berkeley.edu/~bh/61a-pages/
Since the course uses a custom scheme library, I've decided to do a dual setup.
- For the book, the idea was to have something bare bone, as close to MIT scheme as possible, but with better editor support / REPL, etc..
- Eventually, I came across Guile and stucked to it
- Minor difference I've noticed so far is in terms of guile not providing a
nil
object- instead just use
'()
as recommended by the book later on
- instead just use
- The course requires the berkeley library
- They do provide an old code to the library in the archive above, but loading that straight away fails in every scheme implementation I've tried
- Eventually, I found this repo with really awesome instructions
- Basically, they have adapted the code in a racket library
- Install racket, then:
raco pkg install --auto berkeley
raco pkg install --auto planet-dyoo-simply-scheme1
- then you can use whatever editor and using berkeley's scheme library is as easy as:
(require berkeley)
- If you'd like to do the full immersion and start on emacs as well, I can recommend spacemacs
- It's a bit bloated but eases up the transitioning (especially if you're used to vim as I am)
- The configuration with evil-mode works quite well out of the box, and setting up racket and guile is as easy as enabling the respective layers:
- Since racket uses
.rkt
extension (instead of the standard.scm
), emacs will switch the major mode between them seamlessly
- CS61A skips some exercises and also switches the orders from the first chapter
- Because of that I've split the course and book materials
- all exercises from the book (asked or not in CS61A), are inside
book
- exercises from the course (homeworks / projects / midterms) are in CS61A