chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-users] macrolet


From: Alex Shinn
Subject: Re: [Chicken-users] macrolet
Date: Sun, 09 Mar 2008 19:49:41 +0900
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.1.50 (darwin)

>>>>> "Lui" == Lui Fungsin <address@hidden> writes:

    Lui> Hi, Is there a macrolet (CL style old school
    Lui> lexically scoped macro) for chicken?

It can be defined in any of syntax-case, syntactic-closures
or riaxpander, but you really, really don't want to.
Nesting hygienic macros and unhygienic macros just doesn't
work.  You can still get away with simple, top-level
unhygienic macros that don't include any code body, though,
like define-record.

sc-macro-transformer (available in syntactic-closures and
riaxpander), is a lot like CL-style macros, and works with
let-syntax.

    Lui> I need to define macro that captures some of the
    Lui> lexical variables and I cannot use let-syntax
    Lui> because

    Lui> - riaxpander currenlty requires case-insensible
    Lui> mode, and that mode breaks a few eggs that I'm
    Lui> using (e.g. ssax)

There's no reason for this - it needs to be compiled with
csc -i, but then you should be able to load it with
case-sensitive Chicken.  I've removed that restriction in my
local copy and will check it in later.

    Lui> - riaxpander doesn't yet support #!optional ,
    Lui> #!key, etc. which i used a lot in my code.

I'll add these shortly as well.

-- 
Alex




reply via email to

[Prev in Thread] Current Thread [Next in Thread]