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