On Monday 18 July 2016 14:16, Rustom Mody wrote: > On Saturday, July 16, 2016 at 3:16:48 PM UTC+5:30, Steven D'Aprano wrote:
>> But that's *wrong*. Numbers are never inexact. (You can have interval >> arithmetic using "fuzzy numbers", but they're ALWAYS inexact.) It is >> calculations which are exact or inexact, not numbers. There's no a priori >> reason to expect that 0.499999 is "inexact" while 0.5 is "exact", you need >> to know the calculation that generated it: > > Heh! Did you check what scheme has to say about this before holding forth? > I suggest a tool called google. It can make one seem profound Emphasis on the "seem" rather than "actually be" *wink* > Here are the first couple of hits it gives (me) for “scheme exact number” [...] > | The motivation for this behavior is that the inexactness of a number > | should not be lost silently. I appreciate the motivation, but I don't think the Scheme, er, scheme is well- thought out or meaningful. "Exact" or "inexact" is too blunt an instrument to be of much use. If you do a bunch of calculations, and get a result of 1.0, all that tells you is that the "true" (i.e. infinitely precise) value is something possibly centered at 1 with an unknown, not necessarily small, error. So now you know that *at least one* calculation was inexact, but not which ones, or the magnitude of the errors introduced. The Scheme system is effectively the same as a really poor interval arithmetic system, where numbers can be recorded in two forms: x ± 0 # exact x ± ∞ # inexact and nothing in between. > AIUI… > There are two almost completely unrelated notions of exact > > 1. ⅓ in decimal cannot be exactly represented though 0.3 0.33 etc are > approximations. > We could call these inexact forms of ⅓ But 0.3 is an exact representation of 3/10, 0.1 + 0.2, 0.6/2, etc. > 2. Measurement and observation produces numbers. These are inexact > inherently. > > Scheme's notion of exact is towards capturing the second notion. I don't see anything in the Guile documentation you linked to which supports that interpretation. > According to which > “There were 20,000 people in the stadium” would be an inexact integer > [Yeah note Inexact INTEGER] Without a bound on the error ("between 0 and 7 billion people, but probably 20,000") that's of very little use. > whereas > √2, e, π are all exact. Just that they dont have finite decimal/continued > fraction and of course float representations. There are computer algebra systems capable of treating irrationals like √2, e and π as exact numbers, but I'm pretty sure Guile is not one of them. > In short one could think of inexact and exact — in scheme's intended > semantics — as better called scientific (or science-ic) and mathematic > numbers. I don't think so. "Science" uses both experimentally-derived numbers (e.g. G, c, the mass of the electron) and numbers known exactly (√2, e, π). I think one could better think of Scheme's semantics as a poorly-thought out hybrid between traditional numerics and a vague approximation to interval arithmetic. -- Steve -- https://mail.python.org/mailman/listinfo/python-list