How to filter None's out of List[Option]?

If you want to get rid of the options at the same time, you can use flatten:

scala> someList.flatten
res0: List[String] = List(Hello, Goodbye)

someList.filter(_.isDefined) if you want to keep the result type as List[Option[A]]


The cats library also has flattenOption, which turns any F[Option[A]] into an F[A] (where F[_] is a FunctorFilter)

import cats.implicits._

List(Some(1), Some(2), None).flattenOption == List(1, 2)