Optional
object Optional
- Source
- Optional.scala
class Object
trait Matchable
class Any
Value members
Concrete methods
alias for POptional apply restricted to monomorphic update
alias for POptional apply restricted to monomorphic update
- Source
- Optional.scala
Select all the elements which satisfies the predicate.
Select all the elements which satisfies the predicate.
val positiveNumbers = Traversal.fromTraverse[List, Int] composeOptional filter[Int](_ >= 0)
positiveNumbers.getAll(List(1,2,-3,4,-5)) == List(1,2,4)
positiveNumbers.modify(_ * 10)(List(1,2,-3,4,-5)) == List(10,20,-3,40,-5)
filter
can break the fusion property, if replace
or modify
do not preserve the predicate.
For example, here the first modify
(x - 3
) transform the positive number 1 into the
negative number -2.
val positiveNumbers = Traversal.fromTraverse[List, Int] composeOptional Optional.filter[Int](_ >= 0)
val list = List(1, 5, -3)
val firstStep = positiveNumbers.modify(_ - 3)(list) // List(-2, 2, -3)
val secondStep = positiveNumbers.modify(_ * 2)(firstStep) // List(-2, 4, -3)
val bothSteps = positiveNumbers.modify(x => (x - 3) * 2)(list) // List(-4, 4, -3)
secondStep != bothSteps
- See also
This method is called
filtered
in Haskell Lens.- Source
- Optional.scala
Deprecated methods
@deprecated("use Lens.codiagonal", since = "3.0.0-M4")
- Deprecated
[Since version 3.0.0-M4]
- Source
- Optional.scala
@deprecated("use Iso.id", since = "3.0.0-M2")
- Deprecated
[Since version 3.0.0-M2]
- Source
- Optional.scala