(let ((facelist) (countlist) (j 2) (combolist)) (mapcar #'(lambda (card) (push (second card) facelist)) hand) (loop for i from 2 to 14 do (push (count i facelist) countlist) ) (dolist (elem (reverse countlist)) ; One pair, two pair, three pair (:P), three of a kind, four of a kind (if (or (or (= elem 2) (= elem 3)) (= elem 4)) (loop for i from 0 to (- (length facelist) 1) when (= (nth i (reverse facelist)) j) do (push (nth i hand) combolist) ) ) ; Full house (if (and (= elem 2) (= elem 3)) (loop for i from 0 to (- (length facelist) 1) when (= (nth i (reverse facelist)) j) do (push (nth i hand) combolist) ) ) (incf j) )