| Date: Sun, 2 Oct 2011 01:48:00 -0400 | From: John Cowan <[email protected]> | | Aubrey Jaffer scripsit: | | > | > That's reasonable: in fact, SCM doesn't support exact/exact | > | > complex numbers either, which is perfectly fine. It just | > | > means that no general complex number can be real. | > | > All real numbers are complex numbers. This derives from their | > mathematical definitions. | | *General* complex number is a term defined in R5RS: it means | non-real complex number, where "general" is used in the sense of | "general case." Because it seems to confuse people, I have removed | it from the draft R7RS.
Although "general complex number" occurs in R5RS, I can't find it being defined by R5RS. The correct term is "non-real complex number". "no general complex number can be real" then becomes "no non-real complex number can be real", which is trivially true. R5RS also uses the term "general real number"; and this is problematical. The finite real values encoded in floating-point representations are all rational, so there are no "non-rational real number"s in implementations using fixed-point and floating-point representations. If "general real number" means "inexact real number", doesn't that violate the principal: "Numerical tower independent of exactness"? | > Shouldn't the predicates REAL? and COMPLEX? implement the | > mathematical semantics for which they are named? | | ... There are two reasonable sets of semantics here, and by | providing two sets of procedures we can support both. By adding an | "exact-complex" feature, a program that depends on exact complex | numbers can rely on being run only on an implementation that | supports them. The terms integer, rational, real, and complex are too few to adequately describe all the possible numeric Scheme types. Rather than misuse basic mathematical terms, coin new names for the numeric types which don't match the mathematical types. _______________________________________________ Scheme-reports mailing list [email protected] http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports
