main = print $ mat [5,6,2,1,2,3] mat ns = take (maximum ns) (mat' ns) where mat' xs = map (> 0) xs : mat' (map (subtract 1) xs)
Standard input is empty
[[True,True,True,True,True,True],[True,True,True,False,True,True],[True,True,False,False,False,True],[True,True,False,False,False,False],[True,True,False,False,False,False],[False,True,False,False,False,False]]
The brand new service which powers Ideone!
Widget for compiling and running the source code in a web browser!