Try Scheme 0.1

Report bugs via e-mail. Download source distribution here. Or Try Scheme now.

What is Scheme?

It's a simple, clean, powerful programming language invented at MIT in the 1970s. Why should you learn it?

Read more about Scheme on Wikipedia or on schemers.org.

What is Try Scheme?

There are many Scheme implementations. Try Scheme is mine. It's written in JavaScript, so you can run Scheme code in your browser.

What should I try?

I suggest reading SICP and plugging the examples into Try Scheme. Around section 1.3 they start getting really interesting.

Another cool thing to try is this Scheme program which will teach you just a little bit about logic programming.

Once you get tired of Try Scheme and you're ready to download a real Scheme compiler and IDE, I suggest DrScheme. It's free and relatively unintimidating.

Why doesn't it work in Internet Explorer?

Oh, it works. Very, very slowly. Firefox is about 60 times faster. Download it.

Don't push the Enable Syntax button in IE. It'll take two minutes to finish, if you're lucky, and once it finishes, everything will be very slow. You can use these keywords without enabling syntax:

begin
define
delay
if
lambda
letrec
quote
set!

Is Scheme really this slow?

No. Try Scheme is by far the slowest Scheme implementation I'm aware of. Everything is running on top of JavaScript, which is a pretty slow language. The really good parts are written in Scheme and interpreted (by the interpreter written in JavaScript), which makes them even slower.

Real Scheme implementations compile to machine code, and they're very fast.

Download

If you just want to play with Try Scheme, no download is required. Just start typing.

If you're a developer and you want the source code, download tryscheme-0.1.zip.

How you can help

Easy. Give the gift of...

Bug reports make a nice gift, too.

Credits

Try Scheme would be a toy without R. Kent Dybvig and Oscar Waddell's portable syntax-case macro system. It implements R5RS macros and much more.

The R5RS pitfalls tests are part of the Try Scheme test suite. A test contributed by Al Petrofsky caught a bug in Try's letrec.