Listenelemente gruppieren, indem Sie sie mit ihren Nachbarn vergleichen

Was ist die eleganteste Methode zum Gruppieren einer Werteliste in Gruppen auf der Grundlage ihrer Nachbarwerte?

Der größere Kontext, den ich habe, besteht aus einer Liste von Zeilen, die in Absätze gruppiert werden müssen. Ich möchte sagen können, dass wenn der vertikale Unterschied zwischen zwei Linien niedriger als der Schwellenwert ist, sie sich im selben Absatz befinden.

Ich habe dieses Problem letztendlich anders gelöst, aber ich frage mich, welche Lösung hier richtig ist.

case class Box(y: Int)
val list = List(Box(y=1), Box(y=2), Box(y=5))

def group(list: List[Box], threshold: Int): List[List[Box]] = ???

val grouped = group(list, 2)
> List(List(Box(y=1), Box(y=2)), List(Box(y=5)))

Ich habe @ angeschagroupBy(), aber das kann immer nur mit einem Element funktionieren. Ich habe auch einen Ansatz ausprobiert, bei dem Unterschiede mithilfe von @ vorberechnet wurdesliding(), aber dann wird es umständlich, die Elemente aus der ursprünglichen Sammlung abzurufen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage