I have a list shaped like this:
\'((\"Alpha\" . 1538) (\"Beta\" . 8036) (\"Gamma\" . 8990) (\"Beta\" . 10052) (\"Alpha\" . 12837)
(require 'cl) (defun count-uniq (list) (let ((k 1) (list (sort (mapcar #'car list) #'string<))) (loop for (i . j) on list when (string= i (car j)) do (incf k) else collect (cons i k) and do (setf k 1))))