Obter cada átomo enésimo usando o esquema não pega o último átomo

O programa deve selecionar todos os terceiros átomos de uma lista. Observe que o último átomo 'p' deve ser captado, mas não é. Alguma sugestão de por que o último átomo não está sendo selecionado.

(define (every3rd lst)
 (if (or (null? lst)            
      (null? (cdr lst)))     
  '()                        
  (cons (car lst)            
        (every3rd (cdr(cdr(cdr lst)))))))


(every3rd '(a b c d e f g h i j k l m n o p))

Value 1: (a d g j m)

obrigado

questionAnswers(3)

yourAnswerToTheQuestion