Am Mi., 30. Sept. 2026 um 07:10 Uhr schrieb Wolfgang Corcoran-Mathe
<xxxxxx@sigwinch.xyz>:
>
> Marc,
>
> On 2026-09-30 07:02 +0200, Marc Nieper-Wißkirchen wrote:
> > Am Mi., 30. Sept. 2026 um 04:02 Uhr schrieb Wolfgang Corcoran-Mathe
> > <xxxxxx@sigwinch.xyz>:
> > > I don’t understand this either, but I understand the use of ‘case’ in
> > > this example even less! Why didn’t you just write:
> > >
> > > (syntax-rules (big little)
> > > ((_ big) 'big)
> > > ((_ little) 'little)
> > > ((_ e) (syntax-error "bad endianness" e)))
> >
> > This would only be reliable if big and little were bound identifiers.
> > And it would be incompatible with R6RS.
>
> Thanks, but could you explain this a bit more? I reviewed the R6RS &
> the report emphasizes that “only the name of <endianness symbol> is
> significant”. So it should be correct to use ‘free-identifier=?’ (or
> the ‘syntax-rules’ literal list) in this case, no?
In R6RS it mustn't matter whether `big` and `little` are bound. The
`syntax-rules` implementation behaves differently depending on whether
the identifiers are bound or not.
The whole thing is quite R6RS-ish anyway, modelled after R6RS's
enumeration types. In R7RS, I would expect `'big` and `'little` as in
classical Scheme.
>
> --
> Wolfgang Corcoran-Mathe <xxxxxx@sigwinch.xyz>