
And using dynamic precision : http://haskell.org/haskellwiki/Applications_and_libraries/Mathematics#Dynami... The ERA package (darcs get http://darcs.augustsson.net/Darcs/CReal/) one can do better...
import CReal
even_fibs'' :: (Integral t) => [t] even_fibs'' = iterate (\x -> round(fromIntegral x * (dp**3))) 2 where dp :: CReal dp = phi
even_fibs_2 = filter even fibs where fibs = 1 : 1 : zipWith (+) (fibs) (tail fibs)
z n = take n $ zipWith (\a b -> (a==b,a)) even_fibs'' even_fibs_2
t z = not $ null $ filter fst $ z
main = let y = z 1000 in putStr . unlines . map show $ y
This works quite well.... (True,2) (True,8) (True,34) (True,144) (True,610) (True,2584) (True,10946) (True,46368) ...snip... (True,3987795824799770715342824788687062628452272409956636682999616408) (True,16892574194241670428824570378554538679120491007541580961500624834) (True,71558092601766452430641106302905217344934236440122960529002115744) ...