Help with Scheme


There are several Scheme environments in use at the department, including DrScheme (Rice University), MIT Scheme, and Guile. DrScheme provides a much nicer development environment, but is relatively sluggish compared to other implementations. MIT Scheme does provide a development environment of sorts, but it's pretty difficult for beginners.

Which to use? DrScheme is probably the way to go if you're just starting out, and have no previous experience with linux-based languages. MIT Scheme is better if you are already familiar with linux, emacs, and running languages such as Miranda on the instructional linux systems, and don't want to learn yet another interactive development environment

To confuse matters, DrScheme and MIT Scheme implement and rely upon slight variations of the language. One difference that you'll encounter right away is that, in MIT Scheme, the empty list '() is eq? to the boolean value #f (false), whereas in Guile the two are not eq?. Software engineering recommendation: it is unwise to rely on either version of this behavior in any case. Use #f for boolean false, use '() for the empty list, and stay away from mixing the two. There are also differences with regard to error handling and macros.

Editorial aside: this is a good example of what happens to small, tidy languages when the standards process neglects important practical aspects of a language such as standard libraries. The end result is that you may find yourself stuck with one or the other once you have built a piece of software of any complexity. (This is the same problem that faced the Lisp community and led to the eventual standardization of CommonLisp.)

You can also refer to past quarters' information about Scheme: