Función de flujo continuo similar a un mapa de Clojure

Estoy escribiendo una aplicación de biblioteca de fotos simple en Clojure. tengo un library mapa que tiene la :photos clave que es un vector de mapas de fotos. Luego, tengo una función que agrega una foto a una biblioteca: toma el objeto de la biblioteca y la foto para agregarlos como argumentos.

(defn add-to-library [library photo]
  ...
)

Devuelve un library mapa con el photo añadido.

Ahora, quiero "mapear" esta función sobre una lista de fotos. Necesito poder pasar el library objeto a través de una iteración a la siguiente.

¿Cuál es la forma idiomática de hacer esto en Clojure?

preguntado el 30 de julio de 12 a las 02:07

1 Respuestas

Tratar:

(reduce add-to-library library list-of-photos).

Los programas reduce La función es maravillosa y es una herramienta general que es sorprendentemente aplicable en muchas situaciones específicas. Muchas de esas situaciones son como la suya, donde tiene una "colección de cosas", una "función que agrega una cosa a esa colección" y una "lista de cosas para agregar". Tal vez esto no sea material de partida si primero aprende sobre reduce, pero me pareció muy interesante: http://clojure.com/blog/2012/05/08/reducers-a-library-and-model-for-collection-processing.html

Respondido 30 Jul 12, 03:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.