java.lang.Object
com.jnape.palatable.lambda.monoid.builtin.Endo<A>
Type Parameters:
A - the input/output type to the Fn1
All Implemented Interfaces:
Fn1<Fn1<A,A>,Fn1<Fn1<A,A>,Fn1<A,A>>>, Fn2<Fn1<A,A>,Fn1<A,A>,Fn1<A,A>>, Applicative<Fn1<Fn1<A,A>,Fn1<A,A>>,Fn1<Fn1<A,A>,?>>, Cartesian<Fn1<A,A>,Fn1<Fn1<A,A>,Fn1<A,A>>,Fn1<?,?>>, Cocartesian<Fn1<A,A>,Fn1<Fn1<A,A>,Fn1<A,A>>,Fn1<?,?>>, Contravariant<Fn1<A,A>,Profunctor<?,Fn1<Fn1<A,A>,Fn1<A,A>>,Fn1<?,?>>>, Functor<Fn1<Fn1<A,A>,Fn1<A,A>>,Fn1<Fn1<A,A>,?>>, Profunctor<Fn1<A,A>,Fn1<Fn1<A,A>,Fn1<A,A>>,Fn1<?,?>>, Monad<Fn1<Fn1<A,A>,Fn1<A,A>>,Fn1<Fn1<A,A>,?>>, MonadReader<Fn1<A,A>,Fn1<Fn1<A,A>,Fn1<A,A>>,Fn1<Fn1<A,A>,?>>, MonadRec<Fn1<Fn1<A,A>,Fn1<A,A>>,Fn1<Fn1<A,A>,?>>, MonadWriter<Fn1<A,A>,Fn1<Fn1<A,A>,Fn1<A,A>>,Fn1<Fn1<A,A>,?>>, Monoid<Fn1<A,A>>, Semigroup<Fn1<A,A>>

public final class Endo<A> extends Object implements Monoid<Fn1<A,A>>
A Monoid formed by Fn1 under composition.
  • Field Details

    • INSTANCE

      private static final Endo<?> INSTANCE
  • Constructor Details

    • Endo

      private Endo()
  • Method Details

    • apply

      public A apply(Fn1<A,A> f, Fn1<A,A> g, A a)
    • identity

      public Fn1<A,A> identity()
      Description copied from interface: Monoid
      The identity element of this monoid.
      Specified by:
      identity in interface Monoid<A>
      Returns:
      the identity
    • checkedApply

      public Fn1<A,A> checkedApply(Fn1<A,A> f, Fn1<A,A> g)
      Specified by:
      checkedApply in interface Fn2<Fn1<A,A>,Fn1<A,A>,Fn1<A,A>>
    • apply

      public Fn2<Fn1<A,A>,A,A> apply(Fn1<A,A> f)
      Description copied from interface: Fn2
      Partially apply this function by passing its first argument.
      Specified by:
      apply in interface Fn1<Fn1<A,A>,Fn1<Fn1<A,A>,Fn1<A,A>>>
      Specified by:
      apply in interface Fn2<Fn1<A,A>,Fn1<A,A>,Fn1<A,A>>
      Parameters:
      f - the first argument
      Returns:
      an Fn1<B, C>
    • endo

      public static <A> Endo<A> endo()
    • endo

      public static <A> Fn2<Fn1<A,A>,A,A> endo(Fn1<A,A> f)
    • endo

      public static <A> Fn1<A,A> endo(Fn1<A,A> f, Fn1<A,A> g)
    • endo

      public static <A> A endo(Fn1<A,A> f, Fn1<A,A> g, A a)