8

いくつかの値を含む要素のリストがあります。

それを関数にマップし、この 2 つの引数関数を最初のリストの連続する値に適用して計算された値を含むリストを生成したいと考えています。

このリストの要素は 1 つ少なくなります。

マッピング関数は一度に 2 つの引数を取る必要があります。

編集

私が使用している 2 引数関数は非常に複雑なので、簡単にするために、2 つの数値の平均を計算する関数であると仮定します。

リストがある場合: [3 8 11 14 19 20 88].

私の関数をマップする関数を2つ書くことは可能ですaverage(average 3 8)? 5.5

(average 8 11)与えるために9.5

そして(average 11 14)与えます12.5

等々...

一度にリストの2つの連続する値に平均を適用すると、私に与えられるはずです。

[5.5 9.5 12.5 16.5 19.5 54.0]

結果として。

map は単一の引数関数をリスト全体に適用し、まったく同じ数の要素を持つ新しいリストを生成します。

私が欲しいのは、一度に2つの引数を取る関数を適用し、関数をそれに適用して、結果を新しいリストに追加する方法です。

4

2 に答える 2

14

マップでそれを行うことができます:

(map f coll (rest coll))
于 2013-07-17T13:20:31.420 に答える
7
(fn [f coll] (map #(apply f %1) (partition 2 1 coll)) 

今すぐ 4clojure にアクセスしてください。

于 2013-07-17T12:05:27.303 に答える