[racket-dev] require sub-forms

From: Jay McCarthy (jay.mccarthy at gmail.com)
Date: Wed Aug 25 10:11:48 EDT 2010

On Tue, Aug 24, 2010 at 10:18 PM, Eli Barzilay <eli at barzilay.org> wrote:
> On Aug 24, Jay McCarthy wrote:
>> There is not now but we could make a module that only exported them
>> so you could provide all-from-out it and thus centralize the list of
>> subforms. That's the cleanest idea I have.
>
> This assumes you want only the core ones, and not things that are
> defined in other libraries (like in `racket/require').
>
>
>> (You don't want to hear my really bad ideas)
>
> (#rx"-in$" ?)
>

That's not my bad idea, which might not be so bad actually. I'm
imagine a new require/provide transformer that names sets of exports:

.... in require/provide.rkt :

(define-export-set require-sub-forms only-in except-in ...)
(define-export-set provide-sub-forms all-defined-out all-from-out ...)
; These expand to static information

(define-provide-syntax (all-from-export-set-out stx)
 ; looks at the syntax-local-value of stx and pulls out the
identifiers from the definition above
 ; and expands to (combine-out id ...)
 ...)

... in sk.rkt:
(provide
 (all-from-export-set-out require-sub-forms)
 (all-from-export-set-out provide-sub-forms))

Jay

> --
>          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
>                    http://barzilay.org/                   Maze is Life!
>



-- 
Jay McCarthy <jay at cs.byu.edu>
Assistant Professor / Brigham Young University
http://teammccarthy.org/jay

"The glory of God is Intelligence" - D&C 93


Posted on the dev mailing list.