From 98329e0a3dd4f78b5d815ac3896272ec70904901 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Thu, 11 Dec 2025 10:28:11 +0100 Subject: Add remaining haskell book exercises --- Haskell-book/27/BottomExpression.hs | 7 +++++++ Haskell-book/27/StrictList.hs | 20 ++++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 Haskell-book/27/BottomExpression.hs create mode 100644 Haskell-book/27/StrictList.hs (limited to 'Haskell-book/27') diff --git a/Haskell-book/27/BottomExpression.hs b/Haskell-book/27/BottomExpression.hs new file mode 100644 index 0000000..0f0d71d --- /dev/null +++ b/Haskell-book/27/BottomExpression.hs @@ -0,0 +1,7 @@ +{-# LANGUAGE Strict #-} +module BottomExpression where + +!x = undefined +y = "blah" +main = do + print $ snd $ seq x (x, y) diff --git a/Haskell-book/27/StrictList.hs b/Haskell-book/27/StrictList.hs new file mode 100644 index 0000000..f75bb05 --- /dev/null +++ b/Haskell-book/27/StrictList.hs @@ -0,0 +1,20 @@ +{-# LANGUAGE Strict #-} + +module StrictList where + +data List a = + Nil + | Cons ~a ~(List a) + deriving (Show) + +take' n _ | n <= 0 = Nil +take' _ Nil = Nil +take' n (Cons x xs) = (Cons x (take' (n - 1) xs)) + +map' _ Nil = Nil +map' f (Cons x xs) = (Cons (f x) (map' f xs)) + +repeat' x = xs where xs = (Cons x xs) + +main = do + print $ take' 10 $ map' (+1) (repeat' 1) -- cgit v1.2.3