[plt-scheme] define-for-syntax and R6RS
Here's an implementation of begin-for-syntax (but it doesn't handle define).
(define-syntax begin-for-syntax
(syntax-rules ()
[(_ . e) (define-syntax fresh (begin (begin . e) #f))]))
I do not believe there's an R6RS equivalent to define-for-syntax - you
have to use a separate module.
As for why you need to import begin-for-syntax for run, it's because
the `begin-for-syntax' macro itself occurs in phase 0. The
expressions *inside* the begin-for-syntax are in phase 1. Similarly,
in the macro I defined, `define-syntax' appears at phase 0, but
`syntax-rules' appears at phase 1.
sam th
On Tue, Jun 24, 2008 at 8:44 PM, Jos Koot <jos.koot at telefonica.net> wrote:
> Because in R6RS I cannot find anything with the same functionality as
> define-for-syntax or begin-for-syntax, I do the following:
>
> #!r6rs
> (library (mylib)
> (export mystuff)
> (import
> (for (rnrs base (6)) run)
> (for (only (scheme base) define-for-syntax) run)
> (for (rnrs base (6)) expand))
> etc)
>
> I am surprised that define-for-syntax must be imported for phase <run> and
> does not need an import for phase <expand>. Any light on this would be very
> welcome.
>
> Is there in R6RS something with the same functionality as define-for-syntax
> or begin-for-syntax. I have looked hard around, but did not catch anything.
>
> Greetings,
> Jos
>
> _________________________________________________
> For list-related administrative tasks:
> http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>
>
--
sam th
samth at ccs.neu.edu