]> gitweb.michael.orlitzky.com - spline3.git/blobdiff - src/Misc.hs
Remove all "otherwise -> error" cases for performance reasons.
[spline3.git] / src / Misc.hs
index b9322ef0c2d49b23f26350af2e32eb04b403b2d5..d0eb7286559ecd0b5098fd67afd38bcbb0179e1c 100644 (file)
@@ -25,12 +25,12 @@ import Test.QuickCheck
 --   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.