Parsing on newlines is probably not a great fit for Lisp-syntax languages. Does the availability of LSPs make a difference? Asking as I don't know your tool.
(defun double-all-the-things (things)
(mapcar (lambda (x) (* 2 x)) things))
would be straightforward to navigate through with an s-expr aware editor.