[Haskell-cafe] strictness and the simple continued fraction

Scott Turner p.turner at computer.org
Mon Oct 11 21:53:16 EDT 2004


On 2004 October 09 Saturday 15:33, William Lee Irwin III wrote:
> So, I discovered that simple continued fractions are supposed to be
> spiffy lazy lists and thought I'd bang out some continued fraction code.
> But then I discovered ContFrac.hs and couldn't really better it. Of
> course, I went about trying to actually do things relying on their
> laziness, and discovered they weren't as lazy as I hoped they'd be.

I tried using continued fractions in a "spiffy lazy list" implementation a 
while ago. Never got them working as well as expected. 

Evenutally I realized that calculating with lazy lists is not as smooth as you 
might expect. For example, the square root of 2 has a simple representation 
as a lazy continued fraction, but if you multiply the square root of 2 by 
itself, your result lazy list will never get anywhere.  The calculation will 
keep trying to determine whether or not the result is less than 2, this being 
necessary to find the first number in the representation. But every finite 
prefix of the square root of 2 leaves uncertainty both below and above, so 
the determination will never be made.

Your problems may have some other basis, but I hope this helps.


More information about the Haskell-Cafe mailing list