Add remaining haskell book exercises

This commit is contained in:
2025-12-11 10:28:11 +01:00
parent 3624c712d7
commit 98329e0a3d
221 changed files with 8033 additions and 2 deletions

View File

@@ -0,0 +1,21 @@
import Data.Monoid
import Optional
import Test.Hspec
main :: IO ()
main = hspec $ do
describe "Sum" $ do
it "1 + 1 is 2" $ do
Only (Sum 1) `mappend` Only (Sum 1) `shouldBe` Only (Sum {getSum = 2})
describe "Product" $ do
it "4 * 2 is 8" $ do
Only (Product 4) `mappend` Only (Product 2) `shouldBe` Only (Product {getProduct = 8})
describe "Sum with Nada" $ do
it "1 + Nada is 1" $ do
Only (Sum 1) `mappend` Nada `shouldBe` Only (Sum {getSum = 1})
describe "List" $ do
it "[1] <> Nada is [1]" $ do
Only [1] `mappend` Nada `shouldBe` Only [1]
describe "Nada with sum" $ do
it "Nada + 1 is 1" $ do
Nada `mappend` Only (Sum 1) `shouldBe` Only (Sum {getSum = 1})