(require (lib "turtles.ss" "graphics")) (define step 10) (define (dragon-list n) (define (next n) (define (invert l) (cond ((null? l) '()) ((eq? (car l) 'r) (cons 'l (invert (cdr l)))) ((eq? (car l) 'l) (cons 'r (invert (cdr l)))))) (append n (list 'r) (reverse (invert n)))) (cond ((= n 0) '(r)) ((> n 0) (next (dragon-list (- n 1)))))) (define (draw-dragon l) (turtles 't) (tprompt (cond [(null? l) "Finished"] [ (cond [(eq? (car l) 'l) (draw step) (turn 90)] [(eq? (car l) 'r) (draw step) (turn -90)]) (draw-dragon (cdr l))]))) (define (dragon n) (draw-dragon (dragon-list n)))