scala возвращаются первыми Некоторые в списке

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

14
задан giampaolo 13 February 2014 в 21:20
поделиться