Haskell Add Border
addBorder :: [String] -> [String]
addBorder picture = border : map (\row -> "*" ++ row ++ "*") picture ++ [border]
where
border = replicate (length (head picture) + 2) '*'
This builds a new grid with a * border around every side. It adds a full top and bottom row, then wraps each existing row from left and right.