racket/collects/scribble/private/on-demand.rkt
2010-04-27 16:50:15 -06:00

11 lines
260 B
Racket

#lang scheme
(provide define-on-demand)
(define-syntax-rule (define-on-demand id rhs)
(begin
(define val (delay rhs))
(define-syntax (id stx)
(if (identifier? stx)
#'(force val)
(raise-syntax-error #f "bad syntax" stx)))))