[plt-scheme] Re: Contributions
I would love to contribute to the PLT in some way. My
scheme skills are novice at best and I probably
understand a fraction of the discussion on this list.
BUT if someone will guide me, I would be happy to work
on the refactoring tool for drscheme.
Sincerely,
Dan
We (PLT) are looking for someone who is interested in
contributing a refactoring tool for modular
programming
Here is the basic idea:
> Is anyone here interested in starting a refactoring
tool for drscheme
> that works like this:
>
> If it sees:
>
> (module ...
>
> (define (f arg1 ...)
> (define (g x ...) exp)
> ...)
>
>
> and FV(exp) - {x ...} ^ {arg1 ... } = 0, it proposes
to lift g to the
> module level. It is kind of an extension of Check
Syntax.
> Once we have that I'd like to play with
>
> (module ...
>
> (define (f arg1 ...)
> (define (g x ...) exp)
> ...)
>
> and FV(exp) - {x ... } <= arg1 ... then it proposes
to perform the
> following:
>
> (module ...
>
> (define (f arg1 ...)
> (define g (make-g FV(exp) ...))
> ...)
>
> (define (make-g FV(exp) ...)
> (lambda (x) exp))
>
> I am hoping to find other compiler-ish
transformations that help us
> write good, comprehensible modules.
Ryan suggests the following first step:
> As an even smaller first step, Check Syntax could
offer to show all
> local-binding arrows that cross through a selected
term. That is, I
> select the definition of 'g' above, right-click, and
choose "Tack
> arrows of free variables". DrScheme tacks the arrows
for lexically-
> bound
> variables that are free w.r.t. the definition. If
there are none,
then
> the trivial lifting is just Cut-Copy-Reindent.
He'll be in the internal contact (and you couldn't get
a better syntax
hacker to guide you then Ryan, well, with the
exception of Matthew
himself).
-- Matthias
____________________________________________________________________________________
Now that's room service! Choose from over 150,000 hotels
in 45,000 destinations on Yahoo! Travel to find your fit.
http://farechase.yahoo.com/promo-generic-14795097