From 3fe95f67de118f843ec189ecfd2a6ca29adff3bf Mon Sep 17 00:00:00 2001 From: "@crashkeys.dev" Date: Tue, 2 Dec 2025 23:14:04 +0100 Subject: [PATCH] wikibook: basics up to recursion. --- start.hs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/start.hs b/start.hs index 52465a2..d06efe3 100644 --- a/start.hs +++ b/start.hs @@ -244,3 +244,20 @@ mainName = do putStr "Please enter your name: " name <- getLine putStrLn (nameMessage name) + +-- Recursion +fact :: (Integral n, Num n) => n -> n +fact 0 = 1 +fact n = n * fact (n - 1) + +fact' n = product [1 .. n] -- Seems to define a sequence between 1 and n inclusive + +length' :: [a] -> Int +length' [] = 0 +length' (item : remainder) = 1 + length' remainder + +doubleList [] = [] +doubleList (item : remainder) = item * 2 : doubleList remainder + +doubleList' :: [Integer] -> [Integer] +doubleList' = map (* 2) -- 2.51.2