Учитывая, что у меня есть два Seq[M]
и функция-компаратор как функция compare(m1:M, m2:M):Int
, как бы я написал функцию сравнения для двух последовательностей.scala компаратор как функция для последовательностей
def compare[M](s1:Seq[M], s2:Seq[M], cmp:(M,M)=>Int) : Int = {
???
}
Я не буду никаких проблем, чтобы реализовать это сама итерацию последовательности, но я уверен, что есть что-то в готовом виде в библиотеке Scala уже. Я смотрю на класс и объект Ordering
, но у меня есть проблемы, чтобы увидеть лес для всех неявных деревьев.
EDIT: Любой способ использования seqDerivedOrdering
, который можно увидеть в https://github.com/scala/scala/blob/v2.11.2/src/library/scala/math/Ordering.scala#L1, кроме копирования кода?
После прочтения Http: //docs.scala-lang.org/tutorials/tour/implicit-parameters.html, последний начал иметь смысл для меня. Увы, заказ больше не нужен. По крайней мере, он работает для List [Int] и List [String] без. -) И тогда это действительно хорошо и просто. – Harald
Uuhm, о, теперь я понял. Без orderM мой cmp никогда не используется. – Harald