Clojure地图般的流通功能

Hon*_*rny 4 lisp clojure

我正在Clojure写一个简单的照片库应用程序.我有一张library地图,:photos其中的关键是照片地图矢量.然后,我有一个功能,可以将照片添加到库中 - 它将库对象和照片作为参数添加.

(defn add-to-library [library photo]
  ...
)
Run Code Online (Sandbox Code Playgroud)

它返回添加的library地图photo.

现在,我想在照片列表上"映射"此功能.我需要能够将library对象从一次迭代传递到下一次.

在Clojure中这样做的惯用方法是什么?

Omr*_*ein 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的