-- | The standard factorial function. See
-- <http://www.willamette.edu/~fruehr/haskell/evolution.html> for
-- possible improvements.
+--
+-- Examples:
+--
+-- >>> factorial 0
+-- 1
+--
+-- >>> factorial 4
+-- 24
+--
factorial :: Int -> Int
factorial n
| n <= 1 = 1
-- equal. Returns False otherwise.
all_equal :: (Eq a) => [a] -> Bool
all_equal xs =
- and $ map (== first_element) other_elements
+ all (== first_element) other_elements
where
first_element = head xs
other_elements = tail xs