Как правильнее?
(defun countitem (list item)
"Возвращает количество вхождений данного числа в список"
(let ((result 0))
(dolist (x list)
(when (= x item)
(setf result (+ result 1))))
result
))
(defun countitem (list item &optional (count 0))
"Возвращает количество вхождений данного числа в список"
(if (NULL list)
count
(if (= (car list) item)
(countitem (cdr list) item (1+ count))
(countitem (cdr list) item count))))