Class IterableLens

java.lang.Object
com.jnape.palatable.lambda.optics.lenses.IterableLens

public final class IterableLens extends Object
Lenses that operate on Iterables.
  • Constructor Details

    • IterableLens

      private IterableLens()
  • Method Details

    • head

      public static <A> Lens.Simple<Iterable<A>,Maybe<A>> head()
      A lens focusing on the head of a given Iterable.

      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<Iterable<A>,Iterable<A>> tail()
      A lens focusing on the tail of an Iterable.
      Type Parameters:
      A - the Iterable element type
      Returns:
      a lens focusing on the tail of an Iterable
    • mapping

      public static <A, B> Iso.Simple<Iterable<A>,Iterable<B>> mapping(Iso<A,A,B,B> abIso)
      An iso focusing on the mapped values of an Iterable.
      Type Parameters:
      A - the unmapped Iterable element type
      B - the mapped Iterable element type
      Parameters:
      abIso - the iso from A to B
      Returns:
      an iso that maps Iterable<A> to Iterable<B>