[Scheme-reports] 6.2 numbers
Andy Wingo 19 May 2011 16:42 UTC
The initial note about numerical computation being neglected in lisps is
stale.
And actually, relative to the R6RS, this report does indeed neglect
important areas, like the behavior of negative zero in transcendental
functions, and the various nan/infinity interactions.
Perhaps this was the right choice for this report; I don't know.
Suggestion: If you don't want to specify everything there is to do
with -0.0 et al, suggest that implementors produce systems that behave
in accordance to the IEEE recommendations, and specifically that they
follow the recommendations of the R6RS. There's nothing wrong to
refer to it in this way.
Also: R6RS changed the spelling of the cumbersome "inexact->exact" and
"exact->inexact" to "exact" and "inexact", respectively. This is a
positive step.
Suggestion: The report should promote the shorter spellings, and
recommend that implementations provide deprecated shims for
back-compatibility.
6.2.3 talks a lot about flonums, but does not (that I could see)
actually refer to what that means.
Suggestion: find a reference, in the case that there is not one already.
There are warnings about equality predicates for inexact numbers, but no
warning about nan.
Suggestion: mention nan, briefly.
It's cool that you adopted Taylor's division operators. To the extent
that all five sets, are useful, a sixth is useful as well, `centered/'
et al. See:
http://www.gnu.org/software/guile/manual/html_node/Arithmetic.html#index-centered_002f-393
http://srfi.schemers.org/srfi-77/mail-archive/msg00505.html
http://article.gmane.org/gmane.lisp.guile.devel/11418
It's the same as div0-and-mod0 it seems. I don't claim to understand
all the arguments there, but Mark is fairly convincing.
Also there is a typo in (OPERATOR/) (p.28): an extra space before
`values'.
The various div-and-mod operators could use some more examples. Modulo
and remainder get half a page, whereas the ones that you are often
interested in get no space. A table, perhaps? Perhaps Taylor should
publish his draft somewhere in some referenceable form.
The same "module procedure" concerns that I had before apply to the
"inexact module" and "complex module" procedures in this section.
R6RS extended `number->string' to take a third argument, "precision".
Perhaps this was already brought up on the list but if not, it might be
a good addition.
Andy
--
http://wingolog.org/
_______________________________________________
Scheme-reports mailing list
Scheme-reports@scheme-reports.org
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports