sealed abstract class LensFamily[A1, A2, B1, B2] extends AnyRef
A Lens Family, offering a purely functional means to access and retrieve
a field transitioning from type B1
to type B2
in a record simultaneously
transitioning from type A1
to type A2
. scalaz.Lens is a convenient
alias for when A1 =:= A2
, and B1 =:= B2
.
The term field should not be interpreted restrictively to mean a member of a class. For example, a lens
family can address membership of a Set
.
- A1
The initial type of the record
- A2
The final type of the record
- B1
The initial type of the field
- B2
The final type of the field
- Source
- Lens.scala
- See also
- Alphabetic
- By Inheritance
- LensFamily
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Abstract Value Members
- abstract def run(a: A1): IndexedStore[B1, B2, A2]
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
- def %%=[C](s: IndexedState[B1, B2, C]): IndexedState[A1, A2, C]
-
def
%=(f: (B1) ⇒ B2): IndexedState[A1, A2, B2]
Modify the portion of the state viewed through the lens and return its new value.
-
def
%==(f: (B1) ⇒ B2): IndexedState[A1, A2, Unit]
Modify the portion of the state viewed through the lens, but do not return its new value.
-
def
***[C1, C2, D1, D2](that: LensFamily[C1, C2, D1, D2]): LensFamily[(A1, C1), (A2, C2), (B1, D1), (B2, D2)]
alias for
product
-
def
->>-[C](f: ⇒ IndexedState[A1, A2, C]): IndexedState[A1, A2, C]
Sequence the monadic action of looking through the lens to occur before the state action
f
. -
def
:=(b: ⇒ B2): IndexedState[A1, A2, B2]
Set the portion of the state viewed through the lens and return its new value.
-
def
<%=(f: (B1) ⇒ B2): IndexedState[A1, A2, B1]
Modify the portion of the state viewed through the lens and return its old value.
Modify the portion of the state viewed through the lens and return its old value. alias for
modo
- Since
7.0.2
-
def
<:=(b: ⇒ B2): IndexedState[A1, A2, B1]
Set the portion of the state viewed through the lens and return its old value.
Set the portion of the state viewed through the lens and return its old value. alias for
assigno
- Since
7.0.2
-
def
<=<[C1, C2](that: LensFamily[C1, C2, A1, A2]): LensFamily[C1, C2, B1, B2]
alias for
compose
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def =>=(f: (B1) ⇒ B2): (A1) ⇒ A2
- def =>>=[X[_]](f: (B1) ⇒ X[B2])(implicit XF: Functor[X]): (A1) ⇒ X[A2]
-
def
>-[C](f: (B1) ⇒ C): State[A1, C]
Map the function
f
over the value under the lens, as a state action. -
def
>=>[C1, C2](that: LensFamily[B1, B2, C1, C2]): LensFamily[A1, A2, C1, C2]
alias for
andThen
-
def
>>-[C](f: (B1) ⇒ IndexedState[A1, A2, C]): IndexedState[A1, A2, C]
Bind the function
f
over the value under the lens, as a state action. - def andThen[C1, C2](that: LensFamily[B1, B2, C1, C2]): LensFamily[A1, A2, C1, C2]
- def apply(a: A1): IndexedStore[B1, B2, A2]
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
assign(b: ⇒ B2): IndexedState[A1, A2, B2]
Set the portion of the state viewed through the lens and return its new value.
-
def
assigno(b: ⇒ B2): IndexedState[A1, A2, B1]
Set the portion of the state viewed through the lens and return its old value.
Set the portion of the state viewed through the lens and return its old value.
- Since
7.0.2
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
def
compose[C1, C2](that: LensFamily[C1, C2, A1, A2]): LensFamily[C1, C2, B1, B2]
Lenses can be composed
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
flatMap[C](f: (B1) ⇒ IndexedState[A1, A2, C]): IndexedState[A1, A2, C]
Bind the function
f
over the value under the lens, as a state action. - def get(a: A1): B1
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def lensLaw: LensLaw
-
def
lifts[C](s: IndexedState[B1, B2, C]): IndexedState[A1, A2, C]
Contravariantly map a state action through a lens.
-
def
liftsNT: ~>[[γ$0$]IndexedStateT[[X]X, B1, B2, γ$0$], [γ$1$]IndexedStateT[[X]X, A1, A2, γ$1$]]
Contravariantly mapping the state of a state monad through a lens is a natural transformation
-
def
map[C](f: (B1) ⇒ C): State[A1, C]
Map the function
f
over the lens as a state action. -
def
mod(f: (B1) ⇒ B2, a: A1): A2
Modify the value viewed through the lens
-
def
modf[X[_]](f: (B1) ⇒ X[B2], a: A1)(implicit XF: Functor[X]): X[A2]
Modify the value viewed through the lens, returning a functor
X
full of results. -
def
modo(f: (B1) ⇒ B2): IndexedState[A1, A2, B1]
Modify the portion of the state viewed through the lens and return its old value.
Modify the portion of the state viewed through the lens and return its old value.
- Since
7.0.2
-
def
modp[C](f: (B1) ⇒ (B2, C), a: A1): (A2, C)
Modify the value viewed through the lens, returning a
C
on the side. -
def
mods(f: (B1) ⇒ B2): IndexedState[A1, A2, B2]
Modify the portion of the state viewed through the lens and return its new value.
-
def
mods_(f: (B1) ⇒ B2): IndexedState[A1, A2, Unit]
Modify the portion of the state viewed through the lens, but do not return its new value.
-
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()
-
def
partial: PLensFamily[A1, A2, B1, B2]
A homomorphism of lens categories
-
def
product[C1, C2, D1, D2](that: LensFamily[C1, C2, D1, D2]): LensFamily[(A1, C1), (A2, C2), (B1, D1), (B2, D2)]
Two disjoint lenses can be paired
- def set(a: A1, b: B2): A2
- def setf[X[_]](a: A1, b: X[B2])(implicit XF: Functor[X]): X[A2]
- def st: State[A1, B1]
-
def
sum[C1, C2](that: ⇒ LensFamily[C1, C2, B1, B2]): LensFamily[\/[A1, C1], \/[A2, C2], B1, B2]
Two lenses that view a value of the same type can be joined
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
def
unary_~: PLensFamily[A1, A2, B1, B2]
alias for
partial
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
- def xmapA[X1, X2](f: (A2) ⇒ X2)(g: (X1) ⇒ A1): LensFamily[X1, X2, B1, B2]
- def xmapB[X1, X2](f: (B1) ⇒ X1)(g: (X2) ⇒ B2): LensFamily[A1, A2, X1, X2]
- def xmapbA[X, A >: A2 <: A1](b: Bijection[A, X]): LensFamily[X, X, B1, B2]
- def xmapbB[X, B >: B1 <: B2](b: Bijection[B, X]): LensFamily[A1, A2, X, X]
-
def
|||[C1, C2](that: ⇒ LensFamily[C1, C2, B1, B2]): LensFamily[\/[A1, C1], \/[A2, C2], B1, B2]
Alias for
sum