Я сильный Java-разработчик, который совсем недавно начал пытаться использовать Scala в свое свободное время. Я просматриваю Scala на примере PDF с scala-lang.org, и меня смущает, как работает Быстрая сортировка в самом первом примере. Вот код:
object QuickSort extends App {
def sort(input: Array[Int]): Array[Int] = {
if(input.length <= 1) input
else
{
val pivot = input(input.length / 2)
Array.concat(
sort(input filter (pivot >)),
input filter (pivot ==),
sort(input filter (pivot <))
)
}
}
sort(Array(5, 4, 3, 2, 1)) foreach println
}
Мой вопрос не о синтаксисе или чем-то еще, но я запутался в том, откуда взялась функция фильтра. Согласно PDF, в нем говорится, что он происходит из класса Seq [T] и что все массивы являются экземплярами Seq [T]. Это все прекрасно, и, читая PDF, я остался доволен и очень доволен новичком в Scala. Но потом я покопался немного глубже и начал смотреть на scaladoc для Array [T] , а также на исходный код Array [T], и я не вижу, как класс Array [T] расширяет или наследует Seq [T] черта вообще. Чего мне не хватает?