Qualify the following statements with my admittedly limited knowledge
of programming languages, architectures, and algorithms.
div0 and mod0
1. appear in no other programming languages of which I am aware;
2. appear in no implementations of scheme of which I am aware;
3. are useful in no algorithms of which I am aware;
4. appear in no R*RS;
5. are implemented in no computer architectures of which I am aware.
Yet div0 and mod0 have been added to this SRFI, with the only
rationale being:
> Rationale: The half-open symmetry about zero is convenient for some
> purposes.
quotient and remainder
1. appear in every programming language of which I am aware;
2. appear in all implementations of scheme of which I am aware;
3. are useful in many algorithms;
4. appear in every RNRS at least since N=1;
5. have single-instruction hardware implementations in most "PC-
level" computer architectures.
Yet quotient and remainder have been removed by this SRFI, with the
only rationale being:
Well, no rationale is given, only the bald statement
> The quotient, remainder, and modulo procedures were removed.
This behavior might be characterized as "program language design by
assertion".
I think these two decisions should be reversed and a division
operator associated with the existing modulo in RNRS be added.
Brad
PS: Let me say that I in no way consider Egner et al., cited as a
Reference, to offer a rational rationale for either of these actions.