0

というタプルのリストがあり、リストitem内の各インデックスには 2 x Doublesが含まれています。

item = ((1.0, 2.0), (3.0, 4.0), (10.0, 100.0))

リスト内の各インデックスで計算を実行したいのですがitemfoldLeft. これは私のコードです:

item.foldLeft(0.0)(_ + myMethod(_._2, _._1, item.size)))

_._2itemインデックス 1 で現在のタプルに_._1アクセスし、itemインデックス 0 で現在のタプルにアクセスします。たとえば、最初の折り畳みでは、次のようになります。

item.foldLeft(0.0)(_ + myMethod(2.0, 1.0, item.size)))

セカンドフォールド:

item.foldLeft(0.0)(_ + myMethod(4.0, 3.0, item.size)))

サードフォールド:

item.foldLeft(0.0)(_ + myMethod(100.0, 10.0, item.size)))

ここで、myMethod:

def myMethod(i: Double, j:Double, size: Integer) : Double = {
  (j - i) / size
  }

foldLeft2つのパラメーターが必要な ため、パラメーターが多すぎるというエラーが表示されます。myMethodを返し、Double_ですDouble。では、コンパイラが見ているこの余分なパラメータはどこにあるのでしょうか?

私がこれを行う場合:

item.foldLeft(0.0)(_ + _._1))

Doubleの各インデックスの最初のすべての s を合計しますitem- _._1 を _._2 に置き換えるとDouble、 の各インデックスの 2 番目のすべての s が合計されますitem

どんな助けでも大歓迎です!

4

1 に答える 1