Я сейчас немного устал, поэтому могу упустить очевидное.
У меня есть var _minVal: Option[Double]
, который должен содержать минимальное значение, содержащееся в коллекции Double
с (или Нет, если коллекция пуста)
При добавлении нового элемента в коллекцию я также проверяю, является ли _minVal
Нет или больше, чем новый элемент (= кандидат на новый минимум).
Я ушел от
_minVal = Some(_minVal match {
case Some(oldMin) => if (candidate < oldMin) candidate
else oldMin
case None => candidate
})
(не очень СУХОЙ) до
_minVal = Some(min(_minVal getOrElse candidate, candidate))
но все же думаю, что я что-то упускаю ...