これはフォーラムの投稿者が示した例です。このテールが最適化されているかどうかはわかりません。また、テールを最適化したバージョンが通常のバージョンよりも優れている方法について、素人の説明を誰かが与えることができますか.
(defun mylength (s)
(labels ((mylength-inner (s x)
(if (car s) (mylength-inner (cdr s) (+ x 1)) x)))
(mylength-inner s 0)))
テール最適化されていないバージョンですか?
(defun l (s) (if (car s) (+ 1 (l (rest s))) 0))