From 8964e1ca87745763daa42f7aa838b80c7dbc0192 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Sun, 28 Aug 2011 18:49:43 -0400 Subject: [PATCH] Add the Misc.transpose_xz function. --- src/Misc.hs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/Misc.hs b/src/Misc.hs index 34c682e..d3c7162 100644 --- a/src/Misc.hs +++ b/src/Misc.hs @@ -35,6 +35,20 @@ flatten :: [[[a]]] -> [a] flatten xs = concat $ concat xs +-- | Switch the x and z dimensions of a three-dimensional list. +transpose_xz :: [[[a]]] -> [[[a]]] +transpose_xz [] = [] +transpose_xz [[]] = [[]] +transpose_xz [[[]]] = [[[]]] +transpose_xz m = + [[[ m !! x !! y !! z | x <- [0..xsize]] + | y <- [0..ysize]] + | z <- [0..zsize]] + where + zsize = (length m) - 1 + ysize = (length (m !! 0))- 1 + xsize = (length ((m !! 0) !! 0)) - 1 + -- | Takes a list, and returns True if its elements are pairwise -- equal. Returns False otherwise. all_equal :: (Eq a) => [a] -> Bool -- 2.43.2