Скала вернуться на первую строчку в списке
У меня есть список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
.