
fj.data.fingertrees.Node2 Maven / Gradle / Ivy
package fj.data.fingertrees;
import fj.P;
import fj.P3;
import fj.Show;
import fj.data.Option;
import fj.data.Stream;
import fj.data.vector.V2;
import fj.F;
import fj.P2;
import static fj.data.Option.none;
import static fj.data.Option.some;
import static fj.data.fingertrees.FingerTree.mkTree;
/**
* A two-element inner tree node.
*/
public final class Node2 extends Node {
private final V2 as;
Node2(final Measured m, final V2 as) {
super(m, m.sum(m.measure(as._1()), m.measure(as._2())));
this.as = as;
}
@Override public B foldRight(final F> aff, final B z) {
return aff.f(as._1()).f(aff.f(as._2()).f(z));
}
@Override public B foldLeft(final F> bff, final B z) {
return bff.f(bff.f(z).f(as._1())).f(as._2());
}
public Digit toDigit() {
return new Two<>(measured(), as);
}
P3
© 2015 - 2025 Weber Informatics LLC | Privacy Policy