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>
AMonoidinstance formed by mergingHMapsusing the chosenTypeSafeKey->Semigroupmappings, defaulting toLastin case noSemigrouphas been chosen for a givenTypeSafeKey.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static interfaceMergeHMaps.Φ<R>
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map<TypeSafeKey<?,?>,Fn2<HMap,HMap,HMap>>bindingsprivate MergeHMaps.Φ<Fn2<HMap,HMap,HMap>>defaultBinding
-
Constructor Summary
Constructors Modifier Constructor Description privateMergeHMaps(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 HMapcheckedApply(HMap x, HMap y)<B> HMapfoldMap(Fn1<? super B,? extends HMap> fn, java.lang.Iterable<B> bs)Homomorphism combined with catamorphism.HMapidentity()The identity element of this monoid.<A> MergeHMapskey(TypeSafeKey<?,A> key, Semigroup<A> semigroup)private static <A> Fn2<HMap,HMap,HMap>merge(TypeSafeKey<?,A> key, Semigroup<Maybe<A>> semigroup)static MergeHMapsmergeHMaps()-
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:MonoidThe identity element of this monoid.
-
checkedApply
public HMap checkedApply(HMap x, HMap y) throws java.lang.Throwable
- Specified by:
checkedApplyin 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:MonoidHomomorphism combined with catamorphism. Convert anIterable<B>to anIterable<A>(that is, anIterableof 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:
foldMapin 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()
-
-