racket/collects/graphics/turtles.ss
2005-05-27 18:56:37 +00:00

28 lines
676 B
Scheme

(module turtles mzscheme
(require (lib "unitsig.ss")
(lib "mred-sig.ss" "mred")
(lib "mred.ss" "mred")
"turtle-sig.ss"
"turtle-unit.ss")
(provide-signature-elements turtle^)
(provide split split* tprompt)
(define-values/invoke-unit/sig turtle^ turtle@ #f mred^)
(define-syntax split
(lambda (x)
(syntax-case x ()
((_ args ...)
(syntax (splitfn (lambda () args ...)))))))
(define-syntax split*
(syntax-rules ()
[(_ e0 e ...)
(split*fn (list (lambda () e0) (lambda () e) ...))]))
(define-syntax tprompt
(lambda (x)
(syntax-case x ()
((_ e1 ...)
(syntax (tpromptfn (lambda () e1 ...))))))))