Para implementar a sucessão de Fibonacci, é conveniente usar a versão iterativa da função de Fibonacci, para se poder determinar mais rapidamente o próximo elemento da sequência em função dos dois últimos que o precederam. Assim sendo, a função necessita de duas variáveis no seu estado local, para guardar o último e o penúltimo valores produzidos.
(let ((ultimo 1) (penultimo 0)) (defun gera-fib () (let ((novo (+ ultimo penultimo))) (setq penultimo ultimo ultimo novo) novo)))> (gera-fib) 1 > (gera-fib) 2 > (gera-fib) 3