Guest User

Untitled

a guest
Jun 20th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.61 KB | None | 0 0
  1. public class Comb<A, B> implements F<A, Comb<A, B>> {
  2. private final B b;
  3. private final Semigroup<B> m;
  4. private final F<A, B> f;
  5.  
  6. private Comb(final Semigroup<B> m, final F<A, B> f, final B b) {
  7. this.f = f;
  8. this.m = m;
  9. this.b = b;
  10. }
  11.  
  12. public static <A, B> Comb<A, B> comb(final F<A, B> f, final Monoid<B> m) {
  13. return new Comb<A, B>(m.semigroup(), f, m.zero());
  14. }
  15.  
  16. public static <A, B> Comb<A, B> comb(final F<A, B> f, final Semigroup<B> m, final B b) {
  17. return new Comb<A, B>(m, f, b);
  18. }
  19.  
  20. public Comb<A, B> f(final A a) {
  21. return comb(f, m, m.sum(b, f.f(a)));
  22. }
  23. }
Add Comment
Please, Sign In to add comment