Раскладывание списка опций для поиска первого или последнего

Я пытаюсь свернуть список параметров, чтобы вернуть первое (или последнее) значение Some или None, если значения Some отсутствуют.

scala> val opts = List(None, Some(1), None, Some(2), None)
opts: List[Option[Int]] = List(None, Some(1), None, Some(2), None)

scala> opts foldLeft(None)((a,io) => a match { case None => io; case Some(i) =>
a})
:9: error: object None does not take parameters
              opts foldLeft(None)((a,io) => a match { case None => io; case Some
(i) => a})
                                 ^

Не уверен, что делаю не так. Также, вероятно, есть способ сделать это проще, используя функцию более высокого порядка, но ничего из здесь не привлекло мое внимание.

7
задан Trevor 7 November 2011 в 17:36
поделиться