¿Cómo hacer esta longitud≤1 más de una vez?

He pasado un día leyendo las páginas 166length≤1 en el libroEl pequeño intrigante; hay el siguiente código:

(((lambda (mk-length)
    (mk-length mk-length))
  (lambda (mk-length)
   (lambda (l)
    (cond
      ((null? l) 0)
      (else (add1 
           ((mk-length eternity)
            (cdr l))))))))
 l)

dóndel es(apples) yeternity es como sigue:

(define eternity 
  (lambda (x)
    (eternity x)))

La página 166 (4ª ed.) Establece que:

Cuando aplicamosmk-length una vez, obtenemoslength≤1

Y entonces

¿Podríamos hacer esto más de una vez?

Pero no sé cómo hacer esto para conseguirlength≤2?

Respuestas a la pregunta(1)

Su respuesta a la pregunta