Мин/макс с опцией[T] для возможно пустого Seq?

Я немного занимаюсь гимнастикой Скала, где у меня есть Seq[T], в которой я пытаюсь найти «самый маленький» элемент. Вот что я делаю прямо сейчас:

val leastOrNone = seq.reduceOption { (best, current) =>
    if (current.something < best.something) current
    else best
}

Это прекрасно работает, но я не совсем доволен - это немного долго для такой простой вещи, и Меня не очень волнует "если"s. Использование minByбыло бы гораздо более элегантным:

val least = seq.minBy(_.something)

... но minи minByсоздают исключения, когда последовательность пуста. Существует ли идиоматический, более элегантный способ найти наименьший элемент возможно пустого списка в качестве варианта ?

53
задан Xavier Guihot 2 October 2018 в 10:52
поделиться