Esiste un metodo in scala per ottenere l'elemento (singolo) di una Lista o Seq e la coda (raccolta) dell'elenco? So che c'èOttieni articoli di testa e coda dalla lista scala
def splitAt(n: Int): (List[A], List[A])
e posso facilmente afferrare il singolo elemento dal primo elenco della tupla. Ma c'è qualche metodo integrato che è fondamentalmente questo?
def splitAtHead: (Option[A], List[A])
Come ho detto, si può facilmente concatenare splitAt
per restituire la firma giusta, ma ho pensato dotato di un metodo potrebbe essere in grado di salvare una tupla intermedio.
Edit:
@ risposta di om-nom-nom è corretto, ma questo è il motivo per cui non ho potuto usare la sua seconda versione.
List[S](s1, s2, s3, s4).sortBy { _.f (h) } match {
case hd :: tail => recurse(tail)
}
Ah, pattern matching, ovviamente. Per qualche ragione pensavo che 'case hd :: tail' avrebbe fallito per un singolo elenco di elementi. Ma l'ho appena testato e ha funzionato bene. Modificherò la mia domanda per rispondere perché non ho potuto usare la tua seconda versione. – Falmarri