2012-07-30 3 views
4

Clojure에서 간단한 사진 라이브러리 앱을 쓰고 있습니다. 이미지지도의 벡터 인 :photos 키를 가진 library지도가 있습니다. 그런 다음 라이브러리에 사진을 추가하는 함수가 있습니다. 라이브러리 객체와 사진이 인수로 추가됩니다.Clojure와 같은 플로우 스루 기능

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

IT는 photolibrary지도가 추가 반환합니다.

이제이 기능을 사진 목록에 "매핑"하고 싶습니다. 하나의 반복에서 다음 반복을 통해 library 객체를 전달할 수 있어야합니다.

Clojure에서이 작업을 수행하는 관용적 인 방법은 무엇입니까?

답변

7

시도 :

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

reduce 기능이 훌륭하고 많은 특정 상황에서 놀라운 기능을 제공하는 일반적인 도구입니다. 이러한 상황 중 많은 부분이 자신의 것과 같습니다. "사물의 컬렉션", "컬렉션에 물건을 추가하는 기능"및 "추가 할 사물 목록"이 있습니다. 어쩌면 이것은 reduce에 대해 처음 알게되면 시작하지 않을 수도 있지만 매우 흥미로 웠습니다. http://clojure.com/blog/2012/05/08/reducers-a-library-and-model-for-collection-processing.html