我試圖編寫一個函數,通過函數F(我將它稱爲F(S))來映射序列S,將結果值( F(S))與S,並分類由F(S)的結果,返回排序壓縮值(我希望代碼清除這件事,這是難以付諸文本)Scala函數,使用通用函數的映射對Seq進行排序
這裏是我當前的代碼:
def sortByAndReturnZippedMetric[S,M<:Ordering[AnyVal]](s:Seq[S], mapper:S=>M):Seq[(M,S)] =
s.map(mapper).zip(s).sortBy(_._1)
Scalac抱怨,雖然:
error: diverging implicit expansion for type scala.math.Ordering[M]
starting with method comparatorToOrdering in trait LowPriorityOrderingImplicits
s.map(mapper).zip(s).sortBy(_._1)
^
我會很感激一些指引,以什麼可能是錯誤的...
whoosh!這裏有很多事情我沒有意識到,但是你的答案已經被完整地解釋和記錄,所以這只是時間問題。這是真正的黃金 - 謝謝你讓我意識到我不知道的東西! –