Class $<A,B>

java.lang.Object
com.jnape.palatable.lambda.functions.builtin.fn2.$<A,B>
Type Parameters:
A - the applied Fn1's input type
B - the applied Fn1's output type
All Implemented Interfaces:
Fn1<Fn1<? super A, ? extends B>, Fn1<A,B>>, Fn2<Fn1<? super A, ? extends B>, A, B>, Applicative<Fn1<A,B>, Fn1<Fn1<? super A, ? extends B>, ?>>, Cartesian<Fn1<? super A, ? extends B>, Fn1<A,B>, Fn1<?,?>>, Cocartesian<Fn1<? super A, ? extends B>, Fn1<A,B>, Fn1<?,?>>, Contravariant<Fn1<? super A, ? extends B>, Profunctor<?,Fn1<A,B>,Fn1<?,?>>>, Functor<Fn1<A,B>, Fn1<Fn1<? super A, ? extends B>, ?>>, Profunctor<Fn1<? super A, ? extends B>, Fn1<A,B>, Fn1<?,?>>, Monad<Fn1<A,B>, Fn1<Fn1<? super A, ? extends B>, ?>>, MonadReader<Fn1<? super A, ? extends B>, Fn1<A,B>, Fn1<Fn1<? super A, ? extends B>, ?>>, MonadRec<Fn1<A,B>, Fn1<Fn1<? super A, ? extends B>, ?>>, MonadWriter<Fn1<? super A, ? extends B>, Fn1<A,B>, Fn1<Fn1<? super A, ? extends B>, ?>>

public final class $<A,B> extends Object implements Fn2<Fn1<? super A, ? extends B>, A, B>
Function application, represented as a higher-order Fn2 that receives an Fn1 and its argument, and applies it. Useful for treating application as a combinator, e.g.:

List<Fn1<Integer, Integer>> fns     = asList(x -> x + 1, x -> x, x -> x - 1);
List<Integer>               args    = asList(0, 1, 2);
Iterable<Integer>           results = zipWith($(), fns, args); // [1, 1, 1]

  • Field Details

    • INSTANCE

      private static final $<?,?> INSTANCE
  • Constructor Details

    • $

      private $()
  • Method Details

    • checkedApply

      public B checkedApply(Fn1<? super A, ? extends B> fn, A a)
      Specified by:
      checkedApply in interface Fn2<Fn1<? super A, ? extends B>, A, B>
    • $

      public static <A,B> $<A,B> $()
    • $

      public static <A,B> Fn1<A,B> $(Fn1<? super A, ? extends B> fn)
    • $

      public static <A,B> B $(Fn1<? super A, ? extends B> fn, A a)