(defun mode (sequence &rest hash-table-options) (let ((frequencies (apply #'make-hash-table hash-table-options))) (map nil (lambda (element) (incf (gethash element frequencies 0))) sequence) (let ((modes '()) (hifreq 0 )) (maphash (lambda (element frequency) (cond ((> frequency hifreq) (setf hifreq frequency modes (list element))) ((= frequency hifreq) (push element modes)))) frequencies) (values modes hifreq))))