Class Xor

  • All Implemented Interfaces:
    Fn1<java.lang.Boolean,​Fn1<java.lang.Boolean,​java.lang.Boolean>>, Fn2<java.lang.Boolean,​java.lang.Boolean,​java.lang.Boolean>, BiPredicate<java.lang.Boolean,​java.lang.Boolean>, Applicative<Fn1<java.lang.Boolean,​java.lang.Boolean>,​Fn1<java.lang.Boolean,​?>>, Cartesian<java.lang.Boolean,​Fn1<java.lang.Boolean,​java.lang.Boolean>,​Fn1<?,​?>>, Cocartesian<java.lang.Boolean,​Fn1<java.lang.Boolean,​java.lang.Boolean>,​Fn1<?,​?>>, Contravariant<java.lang.Boolean,​Profunctor<?,​Fn1<java.lang.Boolean,​java.lang.Boolean>,​Fn1<?,​?>>>, Functor<Fn1<java.lang.Boolean,​java.lang.Boolean>,​Fn1<java.lang.Boolean,​?>>, Profunctor<java.lang.Boolean,​Fn1<java.lang.Boolean,​java.lang.Boolean>,​Fn1<?,​?>>, Monad<Fn1<java.lang.Boolean,​java.lang.Boolean>,​Fn1<java.lang.Boolean,​?>>, MonadReader<java.lang.Boolean,​Fn1<java.lang.Boolean,​java.lang.Boolean>,​Fn1<java.lang.Boolean,​?>>, MonadRec<Fn1<java.lang.Boolean,​java.lang.Boolean>,​Fn1<java.lang.Boolean,​?>>, MonadWriter<java.lang.Boolean,​Fn1<java.lang.Boolean,​java.lang.Boolean>,​Fn1<java.lang.Boolean,​?>>, Monoid<java.lang.Boolean>, Semigroup<java.lang.Boolean>

    public final class Xor
    extends java.lang.Object
    implements Monoid<java.lang.Boolean>, BiPredicate<java.lang.Boolean,​java.lang.Boolean>
    Logical exclusive-or. Equivalent to logical ^.

    Note that this implementation behaves as a cascade of binary exclusive-or operations, as is the only possible monoidal behavior when applied to an unknown number of inputs.

    See Also:
    Or, And
    • Field Detail

      • INSTANCE

        private static final Xor INSTANCE
    • Constructor Detail

      • Xor

        private Xor()
    • Method Detail

      • identity

        public java.lang.Boolean identity()
        Description copied from interface: Monoid
        The identity element of this monoid.
        Specified by:
        identity in interface Monoid<java.lang.Boolean>
        Returns:
        the identity
      • checkedApply

        public java.lang.Boolean checkedApply​(java.lang.Boolean x,
                                              java.lang.Boolean y)
        Specified by:
        checkedApply in interface Fn2<java.lang.Boolean,​java.lang.Boolean,​java.lang.Boolean>
      • flip

        public Xor flip()
        Description copied from interface: Monoid
        Flip the order of the arguments.
        Specified by:
        flip in interface BiPredicate<java.lang.Boolean,​java.lang.Boolean>
        Specified by:
        flip in interface Fn2<java.lang.Boolean,​java.lang.Boolean,​java.lang.Boolean>
        Specified by:
        flip in interface Monoid<java.lang.Boolean>
        Specified by:
        flip in interface Semigroup<java.lang.Boolean>
        Returns:
        an Fn2<B, A, C>
      • xor

        public static Xor xor()
      • xor

        public static Fn1<java.lang.Boolean,​java.lang.Boolean> xor​(java.lang.Boolean x)
      • xor

        public static java.lang.Boolean xor​(java.lang.Boolean x,
                                            java.lang.Boolean y)