import Data.Char (toUpper) headInt :: [Int] -> Int headInt (x:_) = x tailInt :: [Int] -> [Int] tailInt (x:xs) = xs nullInt :: [Int] -> Bool nullInt [] = True nullInt _ = False isSingleton :: [Int] -> Bool isSingleton [x] = True isSingleton _ = False toUpperFirst :: [Char] -> [Char] toUpperFirst [] = [] toUpperFirst (x:xs) = toUpper x : xs isLetter :: Char -> Bool isLetter x = elem x ['A'..'z'] compTest :: Char -> [Char] compTest x = [x..'z'] mountain :: Int -> [Int] mountain x = [1..x] ++ [x - 1, x - 2 .. 1] divisors :: Int -> [Int] divisors n = [d | d <- [1..n], mod n d == 0]