Just a few small comments regarding the naming convention, and a small
erratum:
- Non-uniformity: div, div+mod, etc. are abbreviated while e.g.
quotient+remainder is not.
- For clarity and disambiguation,
I think it would be nicer if the various type prefixes were written out,
or at least followed by a hyphen. It would also be more consistent with
widespread Scheme practice and R5RS (for example vector-ref, list-ref).
E.g.,
fixnum-integer? (or at least fx-integer?)
Especially, I think that, e.g.,
flownum-atan (or at least fl-atan)
exact-expt (or at least ex-expt)
read much better than flatan and exexpt, since the latter seem like
misspelled English words. Similar in this respect are
indiv (common abbreviation for individual)
fllog (whips and chains, anyone?)
inlog (sounds like what you do after switching on the computer)
flexp (the flex parses more strongly than the exp)
- Also, for common editing operations: it is more error prone to
search and replace, e.g., "fx" with "fl"
than it is to replace "fixnum-" with "flownum-".
- fx, fl, in, ex, all require the novice to refer to the spec
before they can read code even approximately, whereas the approximate
meaning of fixnum-, inexact-, are immediately apparent.
- Furthermore, the in* procedures, such as incomplex?, infloor, etc.,
to me parse like set membership predicates - which some of them are -
but in the wrong way. They would be easier to parse as
inexact-complex?, etc.
- Erratum: "(flatan1 fl1 fl2) computes the arc tangent of fl1/fl2."
Should be flatan2
Cheers
Andre