bug fix in Fractional instance
authorRamakrishnan Muthukrishnan <ram@rkrishnan.org>
Mon, 22 Dec 2014 16:35:36 +0000 (22:05 +0530)
committerRamakrishnan Muthukrishnan <ram@rkrishnan.org>
Mon, 22 Dec 2014 16:35:36 +0000 (22:05 +0530)
hw6/Fibonacci.hs

index e7b3f591e86a5e301ac7407c457dacbade725796..15b563bc6137c13a115ab3e5c8341746423916cc 100644 (file)
@@ -88,8 +88,11 @@ instance Num (Stream Integer) where
   (*) :: Stream Integer -> Stream Integer -> Stream Integer
   (*) (Cons x sx) (Cons y sy) = Cons (x*y) ((streamMap (* x) sy) + sx*(Cons x sx))
 
-instance Fractional Integer => Fractional (Stream Integer) where
+-- instance Fractional Integer => Fractional (Stream Integer) where
+instance Fractional (Stream Integer) where
   (/) :: Stream Integer -> Stream Integer -> Stream Integer
-  (/) (Cons x xs) (Cons y ys) = let r = streamMap (/ y) $ Cons x ((xs - r*ys))
+  (/) (Cons x xs) (Cons y ys) = let r = streamMap (`div` y) $ Cons x ((xs - r*ys))
                                 in
                                   r
+fibs3 :: Stream Integer
+fibs3 = x' / (streamRepeat 1 - x' - x' * x')