Скала вернуться на первую строчку в списке

У меня есть список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.

Ответы на вопрос(5)

Ваш ответ на вопрос