
Ketil Z. Malde wrote:
It seems one could easily (I'll get back to that in a moment) calculate the fractional part of numbers lazily, generating the needed precision, and nothing more. Does any such implementation exist in Haskell?
I realize it's probably far from trivial, e.g. comparing two equal numbers could easily not terminate, and memory exhaustion would probably arise in many other cases.
So, if such implementations exist, how does one deal with these issues? Is it indeed possible to make this useful in practice?
Well, I implemented such a stuff for fun. Look here: http://users.info.unicaen.fr/~karczma/arpap/lazypi.ps.gz This shows how to implement Bailey-Borwein-Plouffe formula for PI, using lazy hexadec. fractions, and converting them to decimal. This is a crazy idea, with algorithms which are partly co-recursive, and partly recursive, borrowing the carry from the non-existing yet future. It could be done in a safer way, but I repeat that I did it for sheer joy. Perhaps one day I will return to it, unless somebody does it first. Jerzy Karczmarczuk