-- 24
--
factorial :: Int -> Int
-factorial !n
- | n > 20 = error "integer overflow in factorial function"
- | otherwise = go 1 n
- where go !acc !i
- | i <= 1 = acc
- | otherwise = go (acc * i) (i - 1)
+factorial !n =
+ go 1 n
+ where
+ go !acc !i
+ | i <= 1 = acc
+ | otherwise = go (acc * i) (i - 1)
-- | Takes a three-dimensional list, and flattens it into a
-- one-dimensional one.