Re: bug in how syntax-rules treats temporaries in the left-hand-side in CSI vs CSC
Peter McGoron via Chicken-users <[email protected]>
| Newsgroups | gmane.lisp.scheme.chicken |
|---|---|
| Message-ID | <[email protected]> |
> I think you might be relying on undefined behaviour here. > > The spec says: > >> If a literal identifier is inserted as a >> free identifier then it refers to the binding of that identifier >> within whose scope the instance of syntax-rules appears. > > This leaves it open to interpretation whether free identifiers in > recursive invocation of the same macro ought to be the same identifier > or different ones. Different Schemes seem to differ in their > interpretation of this. Thanks for the info. I was operating under the assumption that the pattern identifiers of syntax-rules were bound identifiers, but the spec itself doesn't refer to them as that, so I am in murky waters. > MIT Scheme, … Gambit, … Bigloo Thanks for the examples. I guess I will have to dip my toes into low-level macros for this one... (Foment also has this issue, and it's impossible to work around because it has no low-level macro system.)