>>106794385
Thanks after more testing this is simpler
(defun map-buffer (func buffer)
(let ((result (generate-new-buffer "*map*")))
(with-current-buffer buffer
(save-excursion
(goto-char (point-min))
(while (not (eobp))
(princ (funcall func (buffer-substring-no-properties (pos-bol) (pos-eol))) result)
(terpri result)
(forward-line 1))))
(pop-to-buffer result)))
(defun process-csv (func buffer)
(map-buffer
(lambda (line)
(funcall func (split-string line ",")))
buffer))
(process-csv
(lambda (row)
(cl-destructuring-bind (name date value) row
(format "%s = %s" date value)))
(get-buffer "data.csv"))