Formatter: Rewrite code that used an n + k pattern
authorMatt McCutchen <matt@mattmccutchen.net>
Sat, 27 Aug 2011 15:06:22 +0000 (11:06 -0400)
committerMatt McCutchen <matt@mattmccutchen.net>
Sat, 27 Aug 2011 15:06:22 +0000 (11:06 -0400)
program/Formatter.hs

index ed851b3..aab845c 100644 (file)
@@ -8,7 +8,11 @@ intercalate xs xss = concat (intersperse xs xss)
 padWith :: a -> Int -> [a] -> [a]
 padWith _ 0 l = l
 padWith e n [] = replicate n e
 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 =
 
 formatTable :: [[String]] -> String
 formatTable cells =