summaryrefslogtreecommitdiff
path: root/lec06/Fibonacci.hs
diff options
context:
space:
mode:
authorEdoardo La Greca2025-08-26 16:09:22 +0200
committerEdoardo La Greca2025-08-26 16:09:22 +0200
commit420960b427f7106c92ced4c86e7d7b9ebf52fb76 (patch)
tree18a8a2e3403922b1c978b0c98ec90d56b2bd9881 /lec06/Fibonacci.hs
parentad05f12f2bf44a85693121182a2593c3f780a7d8 (diff)
add third exercise of lecture 6
Diffstat (limited to 'lec06/Fibonacci.hs')
-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
+