racket/collects/macro-debugger/util/misc.ss
2007-08-29 20:42:01 +00:00

26 lines
738 B
Scheme

(module misc mzscheme
(require (lib "class.ss")
(lib "framework.ss" "framework"))
(provide closure-mixin
pref:get/set)
(define-syntax pref:get/set
(syntax-rules ()
[(_ get/set prop)
(define get/set
(case-lambda
[() (preferences:get 'prop)]
[(newval) (preferences:set 'prop newval)]))]))
(define-syntax (closure-mixin stx)
(syntax-case stx ()
[(closure-mixin interfaces [name proc] ...)
(with-syntax ([(iname ...) (generate-temporaries #'(name ...))])
#'(let ([iname proc] ...)
(mixin () interfaces
(define/public (name . args) (apply iname args))
...
(super-new))))]))
)