diff --git a/excerpt.html b/excerpt.html deleted file mode 100644 index 2f7b146..0000000 --- a/excerpt.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - -

If people say that Racket is just a Lisp, they are short-selling -Racket a little. It's more accurate to say that Racket is a language -laboratory, because it supports many different languages, -including lazy, - frtime, -and the -HTDP teaching -languages.

- -

However, these examples are all problematic: they lack the power to -convince. Skeptics may accept that Racket has a lot of Lisp dialects, -but surely, they may add, there's a world of difference between a -simple dialect of Lisp and a different programming language. And even -though each of these language examples use wildly different semantics, -their differences are drowning in the homogenous sea of -parentheses.

- -

In order to make the point that Racket is a language laboratory, we -must show examples of Racket languages that look nothing like Lisp. -Let's take a stab at the heart of the problem. What would happen if -we showed a Racket program like this? - - -

-#lang planet dyoo/bf
-++++++[>++++++++++++<-]>.
->++++++++++[>++++++++++<-]>+.
-+++++++..+++.>++++[>+++++++++++<-]>.
-<+++[>----<-]>.<<<<<+++[>+++++<-]>.
->>.+++.------.--------.>>+.
-
- - -To put this in polite terms: what in the $@#! is this?

- -

This -is brainf*ck. If -we enter this in DrRacket, it runs. If we -use raco on -it, we can create standalone executables.

- -

What exactly is going on? All Racket programs start with -a #lang line, as we saw in the example above. -This #lang line is the hook we use to extend Racket toward -different programming languages. More specifically, the -planet dyoo/bf part of the #lang line names a -specific Racket module, which tells Racket how to do two things: - -

- -Both these pieces are not too mysterious: they're the -front-end -of a traditional compiler, and one of the distinguishing features of -Racket is that, not only is its front-end programmable, but pleasingly -so: it's an afternoon's worth of time to implement -brainf*ck from scratch. -

- - -

Toward that end, I've written a self-contained tutorial -at http://hashcollision.org/brainfudge -that shows the entire process, of how to write an implementation of -the brainf*ck language into Racket and how to deploy it on -PLaneT. I'd love to hear -any comments or suggestions about the tutorial. -

- - - - - - diff --git a/images/humpback.jpg b/images/humpback.jpg deleted file mode 100644 index aab9368..0000000 Binary files a/images/humpback.jpg and /dev/null differ