Я этот метод:Scala: Как использовать foldLeft с общим массивом?
def isSorted[A](as: Array[A], ordered: (A, A) => Boolean): Boolean = {
val sorted = for (it <- as.sliding(2))
yield {
if (it.length == 2) ordered.apply(it(0), it(1))
else true
}
sorted.find(!_).isEmpty
}
То, что я хотел бы сделать, это использовать foldLeft
и применить бинарный оператор. Однако foldLeft
требует начального значения, и я не знаю, какое исходное значение я могу предоставить, не зная реального типа A
.
Взгляните на это: http://stackoverflow.com/a/7852918/1153435 – Eduardo
@Eduardo уже сделал. В этой теме нет консенсуса о том, что делать для взлома. Некоторые говорят, что «ломать» - лучшая вещь в Скале, так как нарезанный хлеб, другие считают, что это зло, поскольку оно выдает исключение под капотом. –
Вы пробовали 'reduceLeft'? – Jus12