DEV Community

Discussion on: Daily Challenge #2 - String Diamond

Collapse
 
cloudyhug profile image
cloudyhug

Haskell

import Data.List

diamond :: Int -> Maybe String
diamond n
  | even n || n < 0 = Nothing
  | otherwise       = Just diamondLines
  where
    makeLine k = replicate (div (n - k) 2) ' ' ++ replicate k '*'
    diamondLines = unlines $ map makeLine ([1, 3 .. n] ++ [n - 2, n - 4 .. 1])