Interface Profunctor<A,B,PF extends Profunctor<?,?,PF>>
- Type Parameters:
A- The type of the left parameterB- The type of the right parameterPF- The unification parameter
- All Superinterfaces:
Contravariant<A,Profunctor<?, B, PF>>
- All Known Subinterfaces:
BiMonoidFactory<A,,B, C> BiPredicate<A,,B> BiSemigroupFactory<A,,B, C> Cartesian<A,,B, P> Cocartesian<A,,B, P> Effect<A>,Fn0<A>,Fn1<A,,B> Fn2<A,,B, C> Fn3<A,,B, C, D> Fn4<A,,B, C, D, E> Fn5<A,,B, C, D, E, F> Fn6<A,,B, C, D, E, F, G> Fn7<A,,B, C, D, E, F, G, H> Fn8<A,,B, C, D, E, F, G, H, I> Iso<S,,T, A, B> Iso.Simple<S,,A> Kleisli<A,,B, M, MB> Lens<S,,T, A, B> Lens.Simple<S,,A> Monoid<A>,MonoidFactory<A,,B> Predicate<A>,Prism<S,,T, A, B> Prism.Simple<S,,A> Schema<Values>,Semigroup<A>,SemigroupFactory<A,,B> TypeSafeKey<A,,B> TypeSafeKey.Simple<A>
- All Known Implementing Classes:
$,Absent,AddAll,All,Alter,And,Any,AutoBracket,Between,Both,Bracket,CartesianProduct,CatMaybes,Clamp,CmpEq,CmpEqBy,CmpEqWith,Coalesce,Collapse,Collapse,Compare,Compose,Compose,Concat,Cons,Constantly,Cycle,Difference,Distinct,Downcast,Drop,DropWhile,Empty,Endo,EndoK,Eq,Exchange,Filter,Find,First,Flatten,FoldLeft,FoldRight,Force,GroupBy,GT,GTBy,GTE,GTEBy,GTEWith,GTWith,Head,Id,IfThenElse,InGroupsOf,Init,Inits,Intersection,Intersperse,Into,Into1,Into3,Into4,Into5,Into6,Into7,Into8,Iterate,Join,Last,Last,LazyRec,LeftAll,LeftAll,LeftAny,LeftAny,LiftA2,LiftA3,LiftA4,LiftA5,LiftA6,LiftA7,LT,LTBy,LTE,LTEBy,LTEWith,LTWith,Magnetize,MagnetizeBy,Map,Market,Matching,Max,MaxBy,MaxWith,Merge,Merge,MergeHMaps,MergeMaps,Min,MinBy,MinWith,Not,Occurrences,Or,Over,Partition,Peek,Peek2,Pre,PrependAll,Present,PutAll,RateLimit,Re,ReaderT,ReduceLeft,ReduceRight,Repeat,Replicate,Reverse,RightAll,RightAll,RightAny,RightAny,RunAll,RunAll,ScanLeft,Sequence,Set,Size,Slide,Snoc,Sort,SortBy,SortWith,Span,Tagged,Tail,Tails,Take,TakeWhile,Times,ToArray,ToCollection,ToMap,Trampoline,Trivial,Tupler2,Uncons,Under,Unfoldr,Union,Until,Upcast,View,Xor,Zip,ZipWith
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
@FunctionalInterface
public interface Profunctor<A,B,PF extends Profunctor<?,?,PF>>
extends Contravariant<A,Profunctor<?,B,PF>>
A dually-parametric functor that maps contravariantly over the left parameter and covariantly over the right.
For more information, read about Profunctors.
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptiondefault <Z> Profunctor<Z, B, PF> Contravariantly mapA <- B.<Z,C> Profunctor <Z, C, PF> Dually map contravariantly over the left parameter and covariantly over the right parameter.default <Z> Profunctor<Z, B, PF> Contravariantly map over the left parameter.default <C> Profunctor<A, C, PF> Covariantly map over the right parameter.
-
Method Details
-
diMap
Dually map contravariantly over the left parameter and covariantly over the right parameter. This is isomorphic todiMapL(lFn).diMapR(rFn).- Type Parameters:
Z- the new left parameter typeC- the new right parameter type- Parameters:
lFn- the left parameter mapping functionrFn- the right parameter mapping function- Returns:
- a profunctor over Z (the new left parameter type) and C (the new right parameter type)
-
diMapL
Contravariantly map over the left parameter.- Type Parameters:
Z- the new left parameter type- Parameters:
fn- the mapping function- Returns:
- a profunctor over Z (the new left parameter type) and C (the same right parameter type)
-
diMapR
Covariantly map over the right parameter. For all profunctors that are also functors, it should hold thatdiMapR(f) == fmap(f).- Type Parameters:
C- the new right parameter type- Parameters:
fn- the mapping function- Returns:
- a profunctor over A (the same left parameter type) and C (the new right parameter type)
-
contraMap
Contravariantly mapA <- B.- Specified by:
contraMapin interfaceContravariant<A,B> - Type Parameters:
Z- the new parameter type- Parameters:
fn- the mapping function- Returns:
- the mapped Contravariant functor instance
-