3

私は次の方法を持っています:

(defn area [x y] (* x y))

パラメータ番号に関してリストを反復処理するにはどうすればよいですか。何かのようなもの

(map area [2 5 6 6])

(area 2 5)そのため、 andのような計算が行わ(area 6 6)れます。おそらく vector は使用する適切なタイプではありません。

4

3 に答える 3

6

partitionここで提案されているように使用できますが、データを別の方法で配置することを検討することをお勧めします。たとえば、ベクトルのベクトルを使用できます。

[[2 5] [6 6]]

次に、area関数を次のように変更できます。

(defn area [[x y]] (* x y))

これで、ペアの 1 つを使用してそれを呼び出すことができ(area [6 6])ます。ベクトルへのマッピングは簡単です。

(map area [[2 5] [6 6]])

何らかの理由areaで、ベクトルの代わりに 2 つのパラメーターを取得する必要がある場合は、次のようにすることができます。

(map #(apply area %) [[2 5] [6 6]])

私にとっては、 を使用するよりも簡単ですpartition

于 2013-03-06T16:30:00.737 に答える
4

これを試して:

(map #(apply area %) (partition 2 [2 5 6 6]))
于 2013-03-06T16:07:19.363 に答える
1

map関数が期待する各パラメーターに対して個別のシーケンス パラメーターが必要です。

(map [2 6] [5 6])
于 2013-03-06T16:06:41.753 に答える