I have been using PLT Scheme, but it has some issues. Does anyone know of a better implementation for working through SICP?
Use MIT Scheme.
It's recommended by the authors of SICP, and is used at MIT for the 6.001: Structure and Interpretation of Computer Programs course.
Use Racket (formerly PLT Scheme).
The DrRacket IDE is an excellent starting point for all things Scheme including SICP.
To look up keywords in the documentation, place the cursor on the keyword and press F1. In DrRacket you can now see the images directly in the REPL (the read-eval-print-loop).
SICP Support for DrRacket, by Neil van Dyke.
Update (2016): The new SICP package is at http://pkgs.racket-lang.org/#[sicp]
Download it with the Package Manager (in DrRacket) or use raco
.
Manual
Update2 (2016): Also if you want to try a new implementation of the SICP picture language, then download sicp-pict2.rkt.
Update3 (2020): The sicp-lang package includes an implementation of the sicp language and the sicp picture language.
Documentation: SICP Support for DrRacket
Source Code: sicp-lang on GitHub
Racket Package: sicp-lang package info
Note: The picture language has more features (such as colors and larger sizes) than the picture language described in the book. The source contains examples: https://github.com/sicp-lang/sicp/blob/master/sicp-pict/main.rkt
#lang planet neil/sicp
), it tries to download stuff via plain http, so MitM attacks are possible. And when downloading code which will be executed on your machine, this is a big deal. The page isn't available through https, that's also means you can get anything at all instead of the content. I hope the author will fix it at some time. –
Heritor #lang sicp
as stated in the sicp plugin documentation, all you get is read-syntax:
#lang` not enabled`. –
Incommensurable #lang sicp
in the upper window, not at the prompt in the lower Window. I was not aware of that. –
Incommensurable raco pkg install sicp
, use in REPL: (require sicp)
, then enter (inc 1)
to test. –
Erie Use MIT Scheme.
It's recommended by the authors of SICP, and is used at MIT for the 6.001: Structure and Interpretation of Computer Programs course.
This was suprisingly annoying to get done on macOS. Here's how it works as of today, assuming you have Homebrew. (Might want to run brew update
once in a while).
brew cask install racket
raco setup # might be optional
raco pkg install sicp
Now you can (require sicp)
or simply run
racket -l sicp --repl
Which you might want to abbreviate to scheme
. In bash that'd be
alias scheme='racket -l sicp --repl'
which you can add to your ~/.bashrc
MIT/GNU Scheme, just make sure you load the SICP compatibility package (yes, they provide specific libraries to enhance guarantee the SICP exercises work).
I've just started do SICP this week.
Currently, MIT Scheme is broken in in Ubuntu Linux (9.04 "jaunty"). It might be working in the future.
DrScheme is working, and is working well. You can use soegard's package listed above or Neil Van Dyke's package, which is based on soegard's package and is available from http://www.neilvandyke.org/sicp-plt/. The nice thing about this package is that when installed, you can use Language|Choose Language.... menu item to select SICP.
CHICKEN Scheme has an sicp library that provides support for SICP. You can install it by running chicken-install sicp
and writing this at the beginning of your source code: (use sicp)
.
chicken-install srfi-203
and chicken-install srfi-216
. –
Warwick PLT Scheme works pretty well, or MIT Scheme as Keparo suggested. What issues are you having with it?
I'm now working through SICP using Chez Scheme. It's a pretty old dialect of Scheme, so presumably it isn't too far from what SICP was written around.
Note that the Chez Scheme project page links a Windows binary and source that can be built on Unix-like platforms. But if you're on a Mac, you'll probably want to do
brew chezscheme
man chez
Assuming you have homebrew, which you really should.
Why not MIT Scheme? Because the interactive front end is Edwin, an editor that uses EMACS conventions. (Currently, it's an actual EMACS mode, tho it used to be implemented in Scheme.) I used to know basic EMACS, but my skills atrophied from disuse, which tells me that relearning this editor is just not worth the trouble.
Why not DrRacket? If I had seen @frederick-squid 's brew instructions, I might have given it a try. Instead I tried to follow the official instructions for scheme and sicp, which are seriously out of date. Then I tried to make the IDE go into scheme mode, which seems to be intuitive but isn't.
Just too much trouble. And I'm not sure I want to get into a fancy language design IDE, especially one whose poor support of Scheme sparked the original question.
bin/mit-scheme --library ./lib --heap 120000
<< . After that it's up to you to configure it with your "favourite editor". Or just use the command line as a repl and load whatever file you want from your ed. –
Eastwardly © 2022 - 2024 — McMap. All rights reserved.