whalesong/cs019/teach-runtime.rkt

15 lines
402 B
Racket

#lang s-exp "../lang/base.rkt"
(provide check-not-undefined)
;; Wrapped around uses of local-bound variables:
(define (check-not-undefined name val)
(if (eq? val undefined)
(raise
(make-exn:fail:contract:variable
(format "local variable used before its definition: ~a" name)
(current-continuation-marks)
name))
val))
(define undefined (letrec ([x x]) x))