X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2FMisc.hs;h=48482b4f69a2cfe580b8b34a605beae82565168b;hb=effb6b9a8716ce58fed6c8260c57164601a7df30;hp=6364e95e2c6f3b97794a609bbc7df6c40bd9b65a;hpb=89b8b6e94fcc944a1f4611811265f3c6217af850;p=spline3.git diff --git a/src/Misc.hs b/src/Misc.hs index 6364e95..48482b4 100644 --- a/src/Misc.hs +++ b/src/Misc.hs @@ -7,6 +7,15 @@ where -- | The standard factorial function. See -- for -- possible improvements. +-- +-- Examples: +-- +-- >>> factorial 0 +-- 1 +-- +-- >>> factorial 4 +-- 24 +-- factorial :: Int -> Int factorial n | n <= 1 = 1 @@ -18,3 +27,13 @@ factorial n -- one-dimensional one. flatten :: [[[a]]] -> [a] flatten xs = concat $ concat xs + + +-- | Takes a list, and returns True if its elements are pairwise +-- equal. Returns False otherwise. +all_equal :: (Eq a) => [a] -> Bool +all_equal xs = + all (== first_element) other_elements + where + first_element = head xs + other_elements = tail xs