私は次の方法を持っています:
(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])