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)