On Tue, Sep 22, 2009 at 9:42 AM, Andy Wingo <[email protected]> wrote:
> Hello Lynn
>
> On Sun 20 Sep 2009 21:34, Lynn Winebarger <[email protected]> writes:
>
>> "3D" macros allow us to reify "compile-time" values into our source
>> code (think compiled procedures appearing as literal constants in
>> the operator position of a S-expr).
>
> What Scheme implementations actually allow this? Guile used to, but then
> it grew a compiler.

The last Larceny 0.97 beta allowed it in Andre van Tonder's module system,
though I think I had to jump through some hoops to make it happen.
I believe Larceny itself utilizes S-exprs with closure constants (that is,
compiled user procedures) for "fasl" files in its core language, so it's not
a giant leap for the system to support 3D macros.

Chez has allowed it in the past, though I don't know whether it still does.

As John's post has hinted, with the proper abuse of eval you might even
be able to do it with a syntax-rules only system.  I don't see any other
way of doing it in syntax-rules, but I lack imagination.

I'd like to see this kind of expressive power ratified by the standard, but
that seems unlikely to happen.

Lynn

_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss

Reply via email to