1 
    2 
    3 
    4 
    5 
    6 
    7 
    8 module Utils where
    9 
   10 --import LMLTrace
   11 {-
   12 traceIndex :: String -> [a] -> Int -> a
   13 traceIndex name lst i = trace name (lst!!i)
   14 -}
   15 
   16 map2 :: (a -> b -> c) -> [a] -> [b] -> [c]
   17 map2 f x y = [f a b | (a,b) <- zip x y]
   18 
   19 rep :: Int -> a -> [a]
   20 rep n x = take n (repeat x)
   21 
   22 rjustify :: Int -> [Char] -> [Char]
   23 rjustify n s = spaces(n - (length s)) ++ s
   24 
   25 spaces :: Int -> [Char]
   26 spaces n = rep n ' '
   27 
   28 zip2 :: [a] -> [b] -> [(a,b)]
   29 zip2 x [] = []
   30 zip2 [] y = []
   31 zip2 (a:x) (b:y) = (a,b):zip2 x y
   32 
   33 
   34 
   35 
   36