Проблема в том, что если у вас есть список с двумя или менее элементами, вы не можете взять его caddr. Попробуйте это:
(define (has-third-item lst)
(<= 3 (length lst)))
Могут быть случаи, когда взятие длины списка может быть неэффективным (например, список, содержащий миллионы элементов); в этом случае мы можем проверить, имеет ли список длину ноль, один или два вручную:
(define (has-third-item lst)
(not (or (null? lst)
(null? (cdr lst))
(null? (cddr lst)))))
edit: Относительно двух других ответов, в то время как взятие cddr может работать в этом случае, поскольку входной домен состоит из списка с двумя или тремя elements has-third-item все равно не будет работать для списков с нулем или единицей. В интересах общности, я предлагаю пойти с решением, которое работает для любого домена.