[R6RS] Core/library strawman take 2
Michael Sperber
sperber at informatik.uni-tuebingen.de
Tue Apr 11 12:05:07 EDT 2006
Thanks for strawman---that's a good start, and an excellent basis for
discussion.
Here are some of my observations and suggestions:
- The arithmetic needs some more partitioning:
arithmetic-fixnum
arithmetic-fx
arithmetic-flo
arithmetic-exact
arithmetic-inexact
arithmetic-generic
... and, possibly,
arithmetic-external, containing string<->number
- I/O should probably have a separate i/o-data library, containing
eof-object, and the basic condition-type hierarchy. Possibly, there
should be port-datum-i/o, to allow programs to do simple I/O without
linking in read[-datum], and write[-datum].
- I think the big all-inclusive "records" library is of very limited
usefulness. Most programs will only want one of the syntactic
layers, possibly adding reflection.
- The "bytes" type should be in a separate library.
- I don't see why `multiple-values' isn't a part of core---it needs to
be part of the core semantics, and `call-with-current-continuation'
already brings in multiple values.
- Exceptions and conditions should also be in one or two separate
libraries. (I'd prefer two.)
- `delay' and `force' as a separate library are fine by me.
- I'd like r6rs-small to have explicit records, no I/O, and no
syntax-case. Possibly, there should be "error" and "violation"
convenience procedures to raise exceptions. (Syntax-case is already
pretty heavy; I/O is not needed in many programs; records are.)
- r6rs shouldn't have fixnum, flonum, or primitive-i/o. All are of
use only to a limited number of programs It should have
arithmetic-generic, and syntax-case.
- I personally see little use for r6rs-big.
- R5RS compatibility should be considered for specific libraries,
i.e. I/O, but not as a whole---that would be hard to do for a number
of reasons, starting with lexical syntax.
--
Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla
More information about the R6RS
mailing list