"Jörg F. Wittenberger": > The problem is not cond-expand, but rscheme accepts define-macro only at top > level.
R5RS also limits define-syntax to the top level. R6RS and R7RS relax this, but not everyone's there currently. (See below). We could use cond-expand to define top-level macros if the Scheme implementation provides no alternative. In the other cases, we could provide a cleaner namespace for invokers. We don't define many macros, I only see ":", "no-values", "readable-kernel-module-contents", and "let-splitter". We could rename "let-splitter" to "readable-let-splitter", and "no-values" to "readable-no-values", to reduce the risks of namespace issues. I'd hate to use something other ":". --- David A. Wheeler P.S.: Here's define-syntax info for R5RS, R6RS, and R7RS: * R5RS states that define-syntax syntax definitions "are valid only at the top level of a program" (section 5.3, Syntax definitions). This is relaxed later: * In R6RS, "Keyword bindings established by define-syntax are visible throughout the body in which they appear, except where shadowed by other bindings, and nowhere else, just like variable bindings established by define." (Section 11.2.2). * R7RS relaxes this restriction; it describes define-syntax and says that "syntax definitions can appear at the outermost level or nested within a body (section 5.4, syntax definitions). ------------------------------------------------------------------------------ Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311&iu=/4140/ostg.clktrk _______________________________________________ Readable-discuss mailing list Readable-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/readable-discuss