4

我正在 Clojure 中编写一个简单的照片库应用程序。我有一张library地图,它的:photos键是照片地图的矢量。然后,我有一个将照片添加到库的函数——它将库对象和要添加的照片作为参数。

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

它返回一个添加的library地图photo

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

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

4

1 回答 1

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

于 2012-07-30T02:01:01.847 回答