summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lec06/Fibonacci.hs10
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
+