RosettaCodeData/Task/Sierpinski-triangle/Haskell/sierpinski-triangle-2.hs
2023-07-01 13:44:08 -04:00

14 lines
281 B
Haskell

import Data.List (intercalate)
sierpinski :: Int -> [String]
sierpinski 0 = [""]
sierpinski n =
[ flip
intercalate
([replicate (2 ^ (n - 1))] <*> " -"),
(<>) <*> ('+' :)
]
>>= (<$> sierpinski (n - 1))
main :: IO ()
main = mapM_ putStrLn $ sierpinski 4