【问题标题】:Clojure map-like flow-through functionClojure 类似地图的流通功能
【发布时间】:2012-07-30 01:37:59
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: clojure lisp


    【解决方案1】:

    试试:

    (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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-15
      • 2012-05-20
      • 1970-01-01
      相关资源
      最近更新 更多