Ich möchte alle Elemente vor und gleich dem ersten 7 finden:
7
Meine Lösung ist:
Das Ergebnis ist:
Gibt es eine andere Lösung?
Es braucht jedes Prädikat als Argument. Verwendet span , um den Hauptjob auszuführen:
span
Nur um alternative Ansätze zu veranschaulichen, ist es nicht effizienter als vorherige Lösung.
Die TakeWhile-Implementierung von scala.collection.List entlehnen und etwas ändern:
scala.collection.List
Hier ist ein Weg, um mit foldLeft zu kommen, und eine rekursive Tail-Version, um lange Listen kurzzuschließen.
Es gibt auch die Tests, mit denen ich herumgespielt habe.
Mögliche Vorgehensweise:
Sie könnten folgende Funktion verwenden,
Tail Recursive-Version
Dies funktioniert auch und funktioniert elegant mit Listen, die das Ziel nicht enthalten.
Einige Möglichkeiten mit eingebauten Funktionen:
Tags und Links scala list