Dan Weston wrote:
David Benbennick wrote:
On 10/10/07, Dan Weston <[EMAIL PROTECTED]> wrote:
Actually, it is a constant: piDecimalExpansion :: String.
Where is this constant defined?
A translation from piDecimalExpansion :: String to pi :: Floating a => a
is already well defined via read :: Read a => String -> a
Any definition of pi in the Floating class that differs from (read
piDecimalExpansion) is erroneous. I propose the above as the default
definition of pi.
piDecimalExpansion, if defined, would be an infinite length string.
It would need to be added. The fact that it has infinite length is no
problem. It is countable infinite, and algorithms exist to compute this
lazily.
The expression
read $ "0." ++ repeat '1' :: Double
is Bottom. So even if you had piDecimalExpansion, it isn't clear how
to use that to define pi.
Ouch. Why is that bottom? Any finite dense numeric type can depend on
only a finite number of digits.
Duh. I forgot about the possibility of scientific notation. Curse
whoever invented that with not putting the exponent before the mantissa!
I propose that henceforth 1.5e-10 be written -10e1.5 (no need to change
the letter, it should cause no confusion), and that read should read
greedily only until an 'e' appears, then lazily afterward.
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe