私は次の方法を持っています:
(defn area [x y] (* x y))
パラメータ番号に関してリストを反復処理するにはどうすればよいですか。何かのようなもの
(map area [2 5 6 6])
(area 2 5)そのため、 andのような計算が行わ(area 6 6)れます。おそらく vector は使用する適切なタイプではありません。
私は次の方法を持っています:
(defn area [x y] (* x y))
パラメータ番号に関してリストを反復処理するにはどうすればよいですか。何かのようなもの
(map area [2 5 6 6])
(area 2 5)そのため、 andのような計算が行わ(area 6 6)れます。おそらく vector は使用する適切なタイプではありません。
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。
これを試して:
(map #(apply area %) (partition 2 [2 5 6 6]))
map関数が期待する各パラメーターに対して個別のシーケンス パラメーターが必要です。
(map [2 6] [5 6])