Ich habe eine Liste, die 1s und -1s enthält. Das Ziel, nach dem ich suche, ist, die Position in der Liste zu finden, wenn die Summe -1 ist.Wie finde ich die Position eines Wertes mit foldLeft aus einer Liste?
List[Int] = List(1, -1, 1, -1, 1, 1, -1, 1, -1, 1, -1, 1, 1, 1, 1, 1, -1, -1, -1, 1, -1,
-1, 1, 1, -1, -1, 1, 1, -1, 1, 1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1)
Aber mein Code funktioniert nicht.
Hier sind meine Versuche (Ich habe den Code zum besseren Lesen entfernt) Hinweis: floor
ist das val, das die Liste der Intents hält.
floor.foldLeft(0) { ((x,y) => x+y == -1) }.indexOf(-1)
floor.foldLeft(0) ((x,y) => { (x + y == -1) {x.indexOf(-1)} } )
floor.foldLeft(0) { (x,y) => { if (x + y == -1) { indexOf(-1) } } }
Ich würde gerne wissen, was ich hier falsch mache. Ich bin wirklich hinter dem Warum mehr als die Antwort an und für sich.
Alle Ihre Lösungen verpassen einen wichtigen Punkt über FoldLeft. Der Wert "x" nimmt den Typ des Anfangswerts an, in diesem Fall "0", und der von der Funktion zurückgegebene Typ sollte diesen Typ haben. Im ersten Beispiel ist es boolesch. Die anderen beiden ergeben keinen Sinn. – pedrofurla