15 lines
402 B
Racket
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))
|