object Optional
- Source
- Optional.scala
Linear Supertypes
Ordering
- Alphabetic
- By Inheritance
Inherited
- Optional
- AnyRef
- Any
- Hide All
- Show All
Visibility
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def apply[S, A](_getOption: (S) => Option[A])(_set: (A) => (S) => S): Optional[S, A]
alias for POptional apply restricted to monomorphic update
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def filter[A](predicate: (A) => Boolean): Optional[A, A]
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, ifreplace
ormodify
do not preserve the predicate. For example, here the firstmodify
(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.
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- def void[S, A]: Optional[S, A]
Optional that points to nothing
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()