У меня есть список l: Перечислите [T1]
и в настоящее время я делаю следующее:
myfun : T1 -> Option[T2]
val x: Option[T2] = l.map{ myfun(l) }.flatten.find(_=>true)
Функция myfun
возвращает None или Some, flatten отбрасывает все None и find возвращает первый элемент списка, если таковой имеется.
Мне кажется, это немного глупо. Я думаю, что может быть какое-то понимание или что-то подобное, что сделает это менее расточительным или более умным.
Например: мне не нужны никакие последующие ответы, если myfun
возвращает any Некоторые
во время карты
списка l
.