fork download
  1. import Data.List (intersperse)
  2.  
  3. array = [' ', 'E', 'D', 'C', 'B', 'A']
  4.  
  5. arrays [] = []
  6. arrays (x:xs) = next : arrays next where
  7. next = (drop (length xs - 1) xs ++ take (length xs - 1) xs)
  8.  
  9. prtprnt ar = intersperse ' ' ar
  10.  
  11. indent init ar = take ((init - length ar) `div` 2) (repeat ' ') ++ ar
  12.  
  13. main = do
  14. let ass = arrays array
  15. mapM_ (putStrLn . indent (length ass * 2 - 1) . prtprnt) ass
Success #stdin #stdout 0.01s 5304KB
stdin
Standard input is empty
stdout
 A E D C B
  B E D C
   C E D
    D E
     E