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