Formatter: Rewrite code that used an n + k pattern
[match/match.git] / program / Formatter.hs
index 5ee5a00..aab845c 100644 (file)
@@ -1,10 +1,18 @@
 module Formatter where
 import Data.List
 
+#if __GLASGOW_HASKELL__ <= 606
+intercalate xs xss = concat (intersperse xs xss)
+#endif
+
 padWith :: a -> Int -> [a] -> [a]
 padWith _ 0 l = l
 padWith e n [] = replicate n e
-padWith e (n+1) (h:t) = h:(padWith e n t)
+-- http://hackage.haskell.org/trac/haskell-prime/wiki/RemoveNPlusK
+-- Ugg... GHC could at least give a meaningful error message. ~ Matt 2011-08-27
+padWith e n (h:t) =
+       if n == 0 then error "padWith: list is already longer than the requested length"
+       else h:(padWith e (n-1) t)
 
 formatTable :: [[String]] -> String
 formatTable cells =