Re: comparison operators and *typos
Paul Schlie 06 Jul 2005 17:55 UTC
As one last thought:
If the default value of a function were defined as the average value of
it's limits, then it may be reasonable to define a number system like:
-1.0 -10. -1/0 +1/0 +10. +1.0 -1.0 -10. -Inf Inf 10. 1.0
-------------- 0 -------------- :: -------------- 0 -----------
-1.0 -0.1 -0/1 +0/1 +0.1 +1.0 -1.0 -0.1 -0.0 0.0 0.1 1.0
Where absolute zero is designated as 0, and who's reciprocal is 0, as
the average value of it's -1/0 and +1/0 limits would be 0; as would 0/0,
and the difference of any two equivalent values, thereby eliminating the
otherwise complexity and arguably negligible value of an inexact 0. i.e.:
(= -0.0 0 +0.0) => #t, (< -0.0 0 +0.0) => #t, and (< -1/0 0 +1/0) => #t
Thereby all functions will be legitimately valued at all points with no need
of ambiguous value representation, however who's value may be more precisely
determined at a specific limit through the use of a limit macro as desired.
Thereby hypothetically: (presuming sufficient numerical precision)
(tan pi/2) => 0
(limit (lambda (x) (tan x)) (pi/2 -0/1)) => +1/0
(limit (lambda (x) (tan x)) (pi/2 +0/1)) => -1/0
(+ 4. (/ (abs 0) 0)) => 4.0
(limit (lambda (x) (+ 4. (/ (abs x) x))) (0 -0/1)) => 3.0
(limit (lambda (x) (+ 4. (/ (abs x) x))) (0 +0/1)) => 5.0
[where I suspect if desired, any function returning a 0 resulting from an
average of it's limits may optionally signal an exception, although should
not likely do so by default, as it's not likely as arithmetically useful in
general as returning it's limit's average value would be.]