A combined map
and filter
.
A combined map
and filter
. Filtering is handled via Option
instead of Boolean
such that the output type B
can be different than
the input type A
.
Example:
scala> import cats.implicits._ scala> val m: Map[Int, String] = Map(1 -> "one", 3 -> "three") scala> val l: List[Int] = List(1, 2, 3, 4) scala> def asString(i: Int): Option[String] = m.get(i) scala> l.mapFilter(i => m.get(i)) res0: List[String] = List(one, three)
Similar to mapFilter but uses a partial function instead of a function
that returns an Option
.
Similar to mapFilter but uses a partial function instead of a function
that returns an Option
.
Example:
scala> import cats.implicits._ scala> val l: List[Int] = List(1, 2, 3, 4) scala> FunctorFilter[List].collect(l){ | case 1 => "one" | case 3 => "three" | } res0: List[String] = List(one, three)
Apply a filter to a structure such that the output structure contains all
A
elements in the input structure that satisfy the predicate f
but none
that don't.
"Flatten" out a structure by collapsing Option
s.
"Flatten" out a structure by collapsing Option
s.
Equivalent to using mapFilter
with identity
.
Example:
scala> import cats.implicits._ scala> val l: List[Option[Int]] = List(Some(1), None, Some(3), None) scala> l.flattenOption res0: List[Int] = List(1, 3)
FunctorFilter[F]
allows you tomap
and filter out elements simultaneously.