Recursive Drawing
Mac OS X, Linux, Windows

(define (rand-normal avg dist)
(lambda () (inexact->exact (+ avg (* dist (random:normal))))))
(define (rand-uniform max)
(lambda () (random max)))
(define (const x) (lambda () x))
(define (crazy-walk turn-thunk move-thunk)
(tortoise-turn (turn-thunk))
(tortoise-move (move-thunk)))
(define (punctuated-crazy-walk turn-thunk move-thunk)
(tortoise-penup)
(tortoise-move 2)
(tortoise-pendown)
(crazy-walk turn-thunk move-thunk))
(define (go count walk-func turn-thunk move-thunk)
(if (> count 0)
(begin (walk-func turn-thunk move-thunk)
(go (- count 1) walk-func turn-thunk move-thunk))))
(tortoise-reset)
(go 5000 punctuated-crazy-walk
(rand-uniform 360)
(rand-normal 5 1))