diff options
-rw-r--r-- | lec06/Fibonacci.hs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/lec06/Fibonacci.hs b/lec06/Fibonacci.hs index 5d5eb00..70d8934 100644 --- a/lec06/Fibonacci.hs +++ b/lec06/Fibonacci.hs @@ -13,3 +13,13 @@ fibs1 = map fib [0..] fibs2 :: [Integer] fibs2 = map fst $ iterate (\l -> ( snd l , snd l + fst l )) (0,1) +-- Exercise 3 + +data Stream a = Cons a (Stream a) + +streamToList :: Stream a -> [a] +streamToList (Cons a s) = a : streamToList s + +instance Show a => Show (Stream a) where + show s = show $ take 20 $ streamToList s + |