41 lines
1.4 KiB
Racket
41 lines
1.4 KiB
Racket
#lang scheme/load
|
|
|
|
;; purpose: make sure that each clause exists at most once
|
|
;; (why am I running this in scheme/load for the namespace in eval)
|
|
|
|
(error-print-source-location #f)
|
|
|
|
(with-handlers ((exn:fail:syntax?
|
|
(lambda (e)
|
|
(define msg (exn-message e))
|
|
(define ext "big-bang: duplicate on-draw clause") ; " in: (on-draw render2 400 200)")
|
|
(unless (string=? msg ext)
|
|
(raise e)))))
|
|
(eval '(module a scheme
|
|
(require 2htdp/universe)
|
|
(require 2htdp/image)
|
|
|
|
(define (render1 n) (text (number->string n) 12 "red"))
|
|
(define (render2 n) (text (number->string n) 10 "blue"))
|
|
|
|
(define (main a)
|
|
(big-bang 0
|
|
(on-draw render1 200 400)
|
|
(on-draw render2 400 200)
|
|
; (on-tick sub1)
|
|
(on-tick add1))))))
|
|
|
|
(with-handlers ((exn:fail:syntax?
|
|
(lambda (e)
|
|
(define msg (exn-message e))
|
|
(unless (string=? msg "universe: duplicate on-tick clause"); " in: (on-tick sub1)")
|
|
(raise e)))))
|
|
(eval '(module a scheme
|
|
(require 2htdp/universe)
|
|
|
|
(define (main a)
|
|
(universe 0
|
|
(on-tick add1)
|
|
(on-tick sub1))))))
|
|
|