Class MergeHMaps
- java.lang.Object
-
- com.jnape.palatable.lambda.monoid.builtin.MergeHMaps
-
- All Implemented Interfaces:
Fn1<HMap,Fn1<HMap,HMap>>
,Fn2<HMap,HMap,HMap>
,Applicative<Fn1<HMap,HMap>,Fn1<HMap,?>>
,Cartesian<HMap,Fn1<HMap,HMap>,Fn1<?,?>>
,Cocartesian<HMap,Fn1<HMap,HMap>,Fn1<?,?>>
,Contravariant<HMap,Profunctor<?,Fn1<HMap,HMap>,Fn1<?,?>>>
,Functor<Fn1<HMap,HMap>,Fn1<HMap,?>>
,Profunctor<HMap,Fn1<HMap,HMap>,Fn1<?,?>>
,Monad<Fn1<HMap,HMap>,Fn1<HMap,?>>
,MonadReader<HMap,Fn1<HMap,HMap>,Fn1<HMap,?>>
,MonadRec<Fn1<HMap,HMap>,Fn1<HMap,?>>
,MonadWriter<HMap,Fn1<HMap,HMap>,Fn1<HMap,?>>
,Monoid<HMap>
,Semigroup<HMap>
public final class MergeHMaps extends java.lang.Object implements Monoid<HMap>
AMonoid
instance formed by mergingHMaps
using the chosenTypeSafeKey
->Semigroup
mappings
, defaulting toLast
in case noSemigroup
has been chosen for a givenTypeSafeKey
.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static interface
MergeHMaps.Φ<R>
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map<TypeSafeKey<?,?>,Fn2<HMap,HMap,HMap>>
bindings
private MergeHMaps.Φ<Fn2<HMap,HMap,HMap>>
defaultBinding
-
Constructor Summary
Constructors Modifier Constructor Description private
MergeHMaps(java.util.Map<TypeSafeKey<?,?>,Fn2<HMap,HMap,HMap>> bindings, MergeHMaps.Φ<Fn2<HMap,HMap,HMap>> defaultBinding)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description HMap
checkedApply(HMap x, HMap y)
<B> HMap
foldMap(Fn1<? super B,? extends HMap> fn, java.lang.Iterable<B> bs)
Homomorphism combined with catamorphism.HMap
identity()
The identity element of this monoid.<A> MergeHMaps
key(TypeSafeKey<?,A> key, Semigroup<A> semigroup)
private static <A> Fn2<HMap,HMap,HMap>
merge(TypeSafeKey<?,A> key, Semigroup<Maybe<A>> semigroup)
static MergeHMaps
mergeHMaps()
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.jnape.palatable.lambda.functions.Fn1
andThen, carry, cartesian, censor, choose, cocartesian, diMap, diMapR, discardL, flatMap, fmap, lazyZip, listens, local, pure, self, thunk, toFunction, trampolineM, zip, zip
-
Methods inherited from interface com.jnape.palatable.lambda.functions.Fn2
apply, apply, checkedApply, compose, contraMap, diMapL, discardR, toBiFunction, uncurry, widen
-
Methods inherited from interface com.jnape.palatable.lambda.monoid.Monoid
flip, foldLeft, foldRight, reduceLeft, reduceRight
-
-
-
-
Field Detail
-
bindings
private final java.util.Map<TypeSafeKey<?,?>,Fn2<HMap,HMap,HMap>> bindings
-
defaultBinding
private final MergeHMaps.Φ<Fn2<HMap,HMap,HMap>> defaultBinding
-
-
Constructor Detail
-
MergeHMaps
private MergeHMaps(java.util.Map<TypeSafeKey<?,?>,Fn2<HMap,HMap,HMap>> bindings, MergeHMaps.Φ<Fn2<HMap,HMap,HMap>> defaultBinding)
-
-
Method Detail
-
key
public <A> MergeHMaps key(TypeSafeKey<?,A> key, Semigroup<A> semigroup)
-
identity
public HMap identity()
Description copied from interface:Monoid
The identity element of this monoid.
-
checkedApply
public HMap checkedApply(HMap x, HMap y) throws java.lang.Throwable
- Specified by:
checkedApply
in interfaceFn2<HMap,HMap,HMap>
- Throws:
java.lang.Throwable
-
foldMap
public <B> HMap foldMap(Fn1<? super B,? extends HMap> fn, java.lang.Iterable<B> bs)
Description copied from interface:Monoid
Homomorphism combined with catamorphism. Convert anIterable<B>
to anIterable<A>
(that is, anIterable
of elements this monoid is formed over), then reduce the result from left to right. Under algebraic data types, this is isomorphic to a flatMap.- Specified by:
foldMap
in interfaceMonoid<HMap>
- Type Parameters:
B
- the input Iterable element type- Parameters:
fn
- the mapping function from A to Bbs
- the Iterable of Bs- Returns:
- the folded result under this Monoid
- See Also:
Map
,Monoid.reduceLeft(Iterable)
-
mergeHMaps
public static MergeHMaps mergeHMaps()
-
-