I have a list shaped like this:
\'((\"Alpha\" . 1538) (\"Beta\" . 8036) (\"Gamma\" . 8990) (\"Beta\" . 10052) (\"Alpha\" . 12837)
I dunno that this is the most elegant, but it seems reasonable:
(defun add-for-cheeso (data) (let (result) (dolist (elt data result) (let ((sofar (assoc (car elt) result))) (if sofar (setcdr sofar (1+ (cdr sofar))) (push (cons (car elt) 1) result))))))