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 に答える