summaryrefslogtreecommitdiff
path: root/src/main/java/bjc/funcdata/theory
diff options
context:
space:
mode:
authorBen Culkin <scorpress@gmail.com>2020-04-13 18:43:13 -0400
committerBen Culkin <scorpress@gmail.com>2020-04-13 18:43:13 -0400
commitf51f6da7319787348c38b875652b5c0e9f88c8aa (patch)
tree943888fc724da2d2dedd89abec99dcbfcc089fd0 /src/main/java/bjc/funcdata/theory
parent9052ed6da37af23ea82588d248f409e60a33c6cb (diff)
Cleanup pass
Pass to do some cleanups
Diffstat (limited to 'src/main/java/bjc/funcdata/theory')
-rw-r--r--src/main/java/bjc/funcdata/theory/Bifunctor.java92
-rw-r--r--src/main/java/bjc/funcdata/theory/Functor.java22
2 files changed, 60 insertions, 54 deletions
diff --git a/src/main/java/bjc/funcdata/theory/Bifunctor.java b/src/main/java/bjc/funcdata/theory/Bifunctor.java
index b576a2b..72fccff 100644
--- a/src/main/java/bjc/funcdata/theory/Bifunctor.java
+++ b/src/main/java/bjc/funcdata/theory/Bifunctor.java
@@ -8,10 +8,10 @@ import java.util.function.Function;
* @author ben
*
* @param <LeftType>
- * The type stored on the 'left' of the pair.
+ * The type stored on the 'left' of the pair.
*
* @param <RightType>
- * The type stored on the 'right' of the pair.
+ * The type stored on the 'right' of the pair.
*/
public interface Bifunctor<LeftType, RightType> {
/**
@@ -20,16 +20,16 @@ public interface Bifunctor<LeftType, RightType> {
* @author EVE
*
* @param <OldLeft>
- * The old left type.
+ * The old left type.
*
* @param <OldRight>
- * The old right type.
+ * The old right type.
*
* @param <NewLeft>
- * The new left type.
+ * The new left type.
*
* @param <NewRight>
- * The new right type.
+ * The new right type.
*/
public interface BifunctorMap<OldLeft, OldRight, NewLeft, NewRight>
extends Function<Bifunctor<OldLeft, OldRight>, Bifunctor<NewLeft, NewRight>> {
@@ -44,13 +44,13 @@ public interface Bifunctor<LeftType, RightType> {
* @author EVE
*
* @param <OldLeft>
- * The old left type.
+ * The old left type.
*
* @param <OldRight>
- * The old right type.
+ * The old right type.
*
* @param <NewLeft>
- * The new left type.
+ * The new left type.
*/
public interface LeftBifunctorMap<OldLeft, OldRight, NewLeft>
extends BifunctorMap<OldLeft, OldRight, NewLeft, OldRight> {
@@ -65,13 +65,13 @@ public interface Bifunctor<LeftType, RightType> {
* @author EVE
*
* @param <OldLeft>
- * The old left type.
+ * The old left type.
*
* @param <OldRight>
- * The old right type.
+ * The old right type.
*
* @param <NewRight>
- * The new right type.
+ * The new right type.
*/
public interface RightBifunctorMap<OldLeft, OldRight, NewRight>
extends BifunctorMap<OldLeft, OldRight, OldLeft, NewRight> {
@@ -81,40 +81,45 @@ public interface Bifunctor<LeftType, RightType> {
}
/**
- * Lift a pair of functions to a single function that maps over both
- * parts of a pair.
+ * Lift a pair of functions to a single function that maps over both parts of a
+ * pair.
*
* @param <OldLeft>
- * The old left type of the pair.
+ * The old left type of the pair.
*
* @param <OldRight>
- * The old right type of the pair.
+ * The old right type of the pair.
*
* @param <NewLeft>
- * The new left type of the pair.
+ * The new left type of the pair.
*
* @param <NewRight>
- * The new right type of the pair.
+ * The new right type of the pair.
*
* @param leftFunc
- * The function that maps over the left of the pair.
+ * The function that maps over the left of the pair.
*
* @param rightFunc
- * The function that maps over the right of the pair.
+ * The function that maps over the right of the pair.
*
* @return A function that maps over both parts of the pair.
*/
- public default <OldLeft, OldRight, NewLeft, NewRight> BifunctorMap<OldLeft, OldRight, NewLeft, NewRight> bimap(
- final Function<OldLeft, NewLeft> leftFunc, final Function<OldRight, NewRight> rightFunc) {
- final BifunctorMap<OldLeft, OldRight, NewLeft, NewRight> bimappedFunc = (argPair) -> {
- final LeftBifunctorMap<OldLeft, OldRight, NewLeft> leftMapper = argPair.fmapLeft(leftFunc);
+ public default <OldLeft, OldRight, NewLeft, NewRight>
+ BifunctorMap<OldLeft, OldRight, NewLeft, NewRight>
+ bimap(final Function<OldLeft, NewLeft> leftFunc,
+ final Function<OldRight, NewRight> rightFunc) {
+ final BifunctorMap<OldLeft, OldRight, NewLeft, NewRight> bimappedFunc
+ = argPair -> {
+ final LeftBifunctorMap<OldLeft, OldRight, NewLeft> leftMapper
+ = argPair.fmapLeft(leftFunc);
- final Bifunctor<NewLeft, OldRight> leftMappedFunctor = leftMapper.apply(argPair);
- final RightBifunctorMap<NewLeft, OldRight, NewRight> rightMapper = leftMappedFunctor
- .fmapRight(rightFunc);
+ final Bifunctor<NewLeft, OldRight> leftMappedFunctor
+ = leftMapper.apply(argPair);
+ final RightBifunctorMap<NewLeft, OldRight, NewRight> rightMapper
+ = leftMappedFunctor.fmapRight(rightFunc);
- return rightMapper.apply(leftMappedFunctor);
- };
+ return rightMapper.apply(leftMappedFunctor);
+ };
return bimappedFunc;
}
@@ -123,42 +128,43 @@ public interface Bifunctor<LeftType, RightType> {
* Lift a function to operate over the left part of this pair.
*
* @param <OldLeft>
- * The old left type of the pair.
+ * The old left type of the pair.
*
* @param <OldRight>
- * The old right type of the pair.
+ * The old right type of the pair.
*
* @param <NewLeft>
- * The new left type of the pair.
+ * The new left type of the pair.
*
* @param func
- * The function to lift to work over the left side of the pair.
+ * The function to lift to work over the left side of the
+ * pair.
*
* @return The function lifted to work over the left side of bifunctors.
*/
- public <OldLeft, OldRight, NewLeft> LeftBifunctorMap<OldLeft, OldRight, NewLeft> fmapLeft(
- Function<OldLeft, NewLeft> func);
+ public <OldLeft, OldRight, NewLeft> LeftBifunctorMap<OldLeft, OldRight, NewLeft>
+ fmapLeft(Function<OldLeft, NewLeft> func);
/**
* Lift a function to operate over the right part of this pair.
*
* @param <OldLeft>
- * The old left type of the pair.
+ * The old left type of the pair.
*
* @param <OldRight>
- * The old right type of the pair.
+ * The old right type of the pair.
*
* @param <NewRight>
- * The new right type of the pair.
+ * The new right type of the pair.
*
* @param func
- * The function to lift to work over the right side of the pair.
+ * The function to lift to work over the right side of the
+ * pair.
*
- * @return The function lifted to work over the right side of
- * bifunctors.
+ * @return The function lifted to work over the right side of bifunctors.
*/
- public <OldLeft, OldRight, NewRight> RightBifunctorMap<OldLeft, OldRight, NewRight> fmapRight(
- Function<OldRight, NewRight> func);
+ public <OldLeft, OldRight, NewRight> RightBifunctorMap<OldLeft, OldRight, NewRight>
+ fmapRight(Function<OldRight, NewRight> func);
/**
* Get the value contained on the left of this bifunctor.
diff --git a/src/main/java/bjc/funcdata/theory/Functor.java b/src/main/java/bjc/funcdata/theory/Functor.java
index 4192bf4..85a1ec7 100644
--- a/src/main/java/bjc/funcdata/theory/Functor.java
+++ b/src/main/java/bjc/funcdata/theory/Functor.java
@@ -9,30 +9,30 @@ import java.util.function.Function;
* @author ben
*
* @param <ContainedType>
- * The value inside the functor.
+ * The value inside the functor.
*/
public interface Functor<ContainedType> {
/**
* Converts a normal function to operate over values in a functor..
*
- * N.B: Even though the type signature implies that you can apply the
- * resulting function to any type of functor, it is only safe to call it
- * on instances of the type of functor you called fmap on..
+ * N.B: Even though the type signature implies that you can apply the resulting
+ * function to any type of functor, it is only safe to call it on instances of
+ * the type of functor you called fmap on..
*
* @param <ArgType>
- * The argument of the function.
+ * The argument of the function.
*
* @param <ReturnType>
- * The return type of the function.
+ * The return type of the function.
*
* @param func
- * The function to convert.
+ * The function to convert.
*
- * @return The passed in function converted to work over a particular
- * type of functors.
+ * @return The passed in function converted to work over a particular type of
+ * functors.
*/
- public <ArgType, ReturnType> Function<Functor<ArgType>, Functor<ReturnType>> fmap(
- Function<ArgType, ReturnType> func);
+ public <ArgType, ReturnType> Function<Functor<ArgType>, Functor<ReturnType>>
+ fmap(Function<ArgType, ReturnType> func);
/**
* Retrieve the thing inside this functor.