类似Clojure映射的流通函数



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

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

它返回一个添加了photolibrary映射。

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

在Clojure中,做这件事的惯用方法是什么?

尝试:

(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

最新更新