Peter Bex scripsit: > This inconsistency could be considered a bug: if a new identifier is > introduced at the toplevel which "shadows" a macro, it could erase the > macro. It's not a priority because the spec doesn't really say what to > do, and the responses of various Schemes differ in this. Gambit for > example even disallows redefining macro definitions: > > > (define begin -) > *** ERROR IN (console)@1.9 -- Macro name can't be used as a variable: begin
Gambit is inconsistent in its inconsistency. It will allow you to fully override a macro name, but not a built-in syntax keyword such as begin or cond. > But yeah, many other Schemes simply replace the macro definition by the > procedure. The only ones that don't (from my test suite) are Chicken, Bigloo, STklos, and Picrin. I have filed a bug against Picrin, since it is an R7RS Scheme and R7RS doesn't permit this behavior. -- John Cowan http://www.ccil.org/~cowan co...@ccil.org Time alone is real the rest imaginary like a quaternion --phma _______________________________________________ Chicken-users mailing list Chicken-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/chicken-users