several PLT developers have authored, as well as in the ProgramByDesign project. The following program uses the htdp/bsl—the "beginning student language". It uses the 2htdp/image library for creating pictures in the teaching languages, and the 2htdp/universe library for interactive animations. #lang htdp/bsl ;; Any key inflates the balloon (require 2htdp/image) (require 2htdp/universe) (define (balloon b) (circle b "solid" "red")) (define (blow-up b k) (+ b 5)) (define (deflate b) (max (- b 1) 1)) (big-bang 50 (on-key blow-up) (on-tick deflate) (to-draw balloon 200 200)) Algol Racket comes with a complete implementation of the ALGOL 60 language. #lang algol60 begin integer procedure SIGMA(x, i, n); value n; integer x, i, n; begin integer sum; sum := 0; for i := 1 step 1 until n do sum := sum + x; SIGMA := sum; end; integer q; printnln(SIGMA(q*2-1, q, 7)); end Plai and plai-typed #lang plai #lang plai-typed Another supported language is plai which like racket can be typed or untyped. "Modules written in plai export every definition (unlike scheme)." "The Typed PLAI language differs from traditional Racket most importantly by being statically typed. It also gives you some useful new constructs: define-type, type-case, and test." Additional languages Finally, the following example is an implementation of a new language: #lang racket (provide (except-out (all-from-out racket) #%top #%app) (rename-out [top #%top] [app #%app])) (define-syntax-rule (top . x) 'x) (define-syntax-rule (app f . xs) (if (hash? f) (hash-ref f . xs) (f . xs))) This language: provides everything from the racket language, so it is a somewhat similar variant, except for two special "hook macros" that implement unbound variable lookup and function calls, instead of these, new forms are provided to implicitly quote all unknown variables allow hash tables to be used as functions, where the arguments are used for hash-table lookup. If this code is stored in a mylang.rkt file, you can use it as follows: #lang s-exp "mylang.rkt" ; sexpr syntax, using mylang semantics (define h (make-hasheq)) (hash-set! h A B) ; A and B are self-evaluating here (h A) ; the hash table is used as a function References External links docs.racket Articles with example Racket code Software development Language workbench