fork download
  1. import Data.List
  2.  
  3. key :: Char
  4. key = '#'
  5.  
  6. blank :: Char
  7. blank = ' '
  8.  
  9. newLine_ :: String -> String
  10. newLine_ [] = []
  11. newLine_ (_:[]) = []
  12. newLine_ (_:_:[]) = []
  13. newLine_ list@(left:up:right:rest)
  14. | (oneKey && oneBlank) && up == blank = key : (newLine_ $ drop 1 list)
  15. | otherwise = blank : (newLine_ $ drop 1 list)
  16. where
  17. oneKey = left == key || right == key
  18. oneBlank = left == blank || right == blank
  19.  
  20. newLine :: String -> String
  21. newLine x = blank : ((newLine_ x) ++ [blank])
  22.  
  23. sier :: String -> Int -> [String]
  24. sier _ lines
  25. | lines < 1 = []
  26. sier [] lines = sier firstLine lines
  27. where
  28. spacing = replicate lines blank
  29. firstLine = spacing ++ [key] ++ spacing
  30. sier prevLine lines = prevLine : (sier next (lines-1))
  31. where next = newLine prevLine
  32.  
  33. main :: IO ()
  34. main = putStr $ intercalate "\n" $ sier ((replicate (2^5) blank) ++ [key] ++ (replicate (2^4) blank) ++ [key] ++ (replicate (2^5) blank)) (2^5)
Success #stdin #stdout 0s 4692KB
stdin
Standard input is empty
stdout
                                #                #                                
                               # #              # #                               
                              #   #            #   #                              
                             # # # #          # # # #                             
                            #       #        #       #                            
                           # #     # #      # #     # #                           
                          #   #   #   #    #   #   #   #                          
                         # # # # # # # #  # # # # # # # #                         
                        #               ##               #                        
                       # #             #  #             # #                       
                      #   #           # ## #           #   #                      
                     # # # #         #      #         # # # #                     
                    #       #       # #    # #       #       #                    
                   # #     # #     #   #  #   #     # #     # #                   
                  #   #   #   #   # # # ## # # #   #   #   #   #                  
                 # # # # # # # # #              # # # # # # # # #                 
                #                 #            #                 #                
               # #               # #          # #               # #               
              #   #             #   #        #   #             #   #              
             # # # #           # # # #      # # # #           # # # #             
            #       #         #       #    #       #         #       #            
           # #     # #       # #     # #  # #     # #       # #     # #           
          #   #   #   #     #   #   #   ##   #   #   #     #   #   #   #          
         # # # # # # # #   # # # # # # #  # # # # # # #   # # # # # # # #         
        #               # #             ##             # #               #        
       # #             #   #           #  #           #   #             # #       
      #   #           # # # #         # ## #         # # # #           #   #      
     # # # #         #       #       #      #       #       #         # # # #     
    #       #       # #     # #     # #    # #     # #     # #       #       #    
   # #     # #     #   #   #   #   #   #  #   #   #   #   #   #     # #     # #   
  #   #   #   #   # # # # # # # # # # # ## # # # # # # # # # # #   #   #   #   #  
 # # # # # # # # #                                              # # # # # # # # #