SICP: ¿por qué usar acumular con contras cuando el filtro ya devuelve una lista


8

En SICP 2nd Edition sección 2.2.3, los autores tienen el siguiente código:

(define (even-fibs n)
  (accumulate cons
              nil
              (filter even?
                      (map fib
                           (enumerate-interval 0 n)))))

Mi pregunta es ¿por qué usaron acumular en este caso? ¿No podrían haber obtenido la misma respuesta del filtro sin usar acumular ?

Respuestas:


10

En esa sección del libro, filter, map, y enumerate-intervalse presume que volver secuencias, que son conceptualmente diferentes de las listas. Puede implementar secuencias usando secuencias, por ejemplo, aunque también puede implementar secuencias usando listas.

Entonces, en este caso, el accumulatecon conses convertir la secuencia a una lista.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.