loop:リストを回しつつ、要素の数え上げもする - lisp-cookbook-ja/common-lisp GitHub Wiki
(defvar *names*
'(nil "おそ松" "カラ松" "チョロ松" "一松" "十四松" "トド松" nil))
(loop :for n :in *names*
:for c :from 1
:collect (list c n))
;=> ((1 NIL) (2 "おそ松") (3 "カラ松") (4 "チョロ松")
; (5 "一松") (6 "十四松") (7 "トド松") (8 NIL))
;; nilは除外したい、というような場合
(loop :for n :in *names*
:count n :into c
:when n :collect (list c n))
;=> ((1 "おそ松") (2 "カラ松") (3 "チョロ松") (4 "一松")
; (5 "十四松") (6 "トド松"))