Lisp Add Border
(defun add-border (picture)
(let* ((width (length (first picture)))
(border (make-string width :initial-element #\*))
(wrapped (mapcar (lambda (row) (format nil "*~A*" row))
(cons border picture))))
(append wrapped (list (make-string (+ width 2) :initial-element #\*)))))
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.