Class IterableLens
- java.lang.Object
-
- com.jnape.palatable.lambda.optics.lenses.IterableLens
-
public final class IterableLens extends java.lang.Object
Lenses that operate onIterable
s.
-
-
Constructor Summary
Constructors Modifier Constructor Description private
IterableLens()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <A> Lens.Simple<java.lang.Iterable<A>,Maybe<A>>
head()
A lens focusing on the head of a givenIterable
.static <A,B>
Iso.Simple<java.lang.Iterable<A>,java.lang.Iterable<B>>mapping(Iso<A,A,B,B> abIso)
An iso focusing on the mapped values of anIterable
.static <A> Lens.Simple<java.lang.Iterable<A>,java.lang.Iterable<A>>
tail()
A lens focusing on the tail of anIterable
.
-
-
-
Method Detail
-
head
public static <A> Lens.Simple<java.lang.Iterable<A>,Maybe<A>> head()
A lens focusing on the head of a givenIterable
.Note that this lens is effectively lawful, though difficult to prove since there is no useful equality implementation for
Iterable
.- Type Parameters:
A
- the Iterable element type- Returns:
- a lens focusing on the head element of an
Iterable
-
tail
public static <A> Lens.Simple<java.lang.Iterable<A>,java.lang.Iterable<A>> tail()
A lens focusing on the tail of anIterable
.- Type Parameters:
A
- the Iterable element type- Returns:
- a lens focusing on the tail of an
Iterable
-
mapping
public static <A,B> Iso.Simple<java.lang.Iterable<A>,java.lang.Iterable<B>> mapping(Iso<A,A,B,B> abIso)
An iso focusing on the mapped values of anIterable
.- Type Parameters:
A
- the unmappedIterable
element typeB
- the mappedIterable
element type- Parameters:
abIso
- the iso from A to B- Returns:
- an iso that maps
Iterable
<A> toIterable
<B>
-
-