(defun count-unique-values (list)
(let ((map (make-hash-table)))
(loop for x in list
do (setf (gethash x map) 1))
(hash-table-count map)))
(defun test (list)
(format t "Testing ~a: ~a ~%" list (count-unique-values list)))
(test '(1 2 3))
(test '(1 2 3 3))
(test '(1 1 2 2 3 3))
KGRlZnVuIGNvdW50LXVuaXF1ZS12YWx1ZXMgKGxpc3QpCiAgKGxldCAoKG1hcCAobWFrZS1oYXNoLXRhYmxlKSkpCiAgICAobG9vcCBmb3IgeCBpbiBsaXN0CiAgICAgICBkbyAoc2V0ZiAoZ2V0aGFzaCB4IG1hcCkgMSkpCiAgICAoaGFzaC10YWJsZS1jb3VudCBtYXApKSkKCgooZGVmdW4gdGVzdCAobGlzdCkKICAoZm9ybWF0IHQgIlRlc3RpbmcgfmE6IH5hIH4lIiBsaXN0IChjb3VudC11bmlxdWUtdmFsdWVzIGxpc3QpKSkKCih0ZXN0ICcoMSAyIDMpKQoodGVzdCAnKDEgMiAzIDMpKQoodGVzdCAnKDEgMSAyIDIgMyAzKSkKCgoK