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

Re: Initial comments



Alan Watson wrote:
> I think you either need to explicitly justify the new procedural  
> system or use the R6RS procedural system for your new syntactic system.

I will add explicit justification.

The executive summary is that the record-constructor
descriptors of the R6RS procedural layer put it over
the top.  Those things complicate the usual cases,
simplifying only unusual cases.  That's the wrong
tradeoff.

So long as we're fixing that, we might as well use
names for fields instead of numeric indexes.  Named
fields are, after all, one of the things people
usually associate with records.

And so we arrive at an alternative API: simpler and
more idiomatic, but perfectly compatible with the
R6RS procedural and inspection layers.

Programmers who see advantages in the ERR5RS syntactic
layer but not in the procedural or inspection layers
are free to use (err5rs records syntactic) with
(rnrs records procedural) and (rnrs records inspection).
Indeed, all five of the following libraries play well
together:

    (err5rs records syntactic)
    (err5rs records procedural)
    (err5rs records inspection)
    (rnrs records procedural)
    (rnrs records inspection)

The only library that doesn't interoperate smoothly
with the above libraries is (rnrs records syntactic),
and there's absolutely no hope of repairing that
library because its use of a radically different
notion of record type was a fundamental mistake in
its design.

Will