9
在scala中是否有方法來獲取List或Seq的(單個)頭元素和列表的(集合)尾?我知道有從scala列表中獲取頭項目和尾項目
def splitAt(n: Int): (List[A], List[A])
我可以很容易地從元組的第一個列表中抓取單個項目。但是有沒有內置的方法基本上是這樣的?
def splitAtHead: (Option[A], List[A])
就像我說的,你可以很容易地連鎖splitAt
返回正確的簽名,但我想一個內置的方法也許能夠節省中間元組。
編輯:
@ OM-NOM-NOM的答案是正確的,但是這就是爲什麼我不能用他的第二個版本。
List[S](s1, s2, s3, s4).sortBy { _.f (h) } match {
case hd :: tail => recurse(tail)
}
啊,模式匹配,效果顯着。出於某種原因,我認爲'case hd :: tail'會失敗的單個元素列表。但我只是測試它,它運行良好。我會編輯我的問題,回答爲什麼我不能使用你的第二個版本。 – Falmarri 2013-02-11 00:15:57