Skip to content

Commit 79fbe5e

Browse files
committed
Merge branch 'master' of https://github.com/functionaljava/functionaljava into treemap-setall
2 parents e9c7a1c + 2269c74 commit 79fbe5e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+2105
-355
lines changed

core/src/main/java/fj/Equal.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,10 @@ public static <A> Equal<Option<A>> optionEqual(final Equal<A> ea) {
238238
o1.isSome() && o2.isSome() && ea.f.f(o1.some()).f(o2.some()));
239239
}
240240

241+
public static <A> Equal<Seq<A>> seqEqual(final Equal<A> e) {
242+
return equal(s1 -> s2 -> streamEqual(e).eq(s1.toStream(), s2.toStream()));
243+
}
244+
241245
/**
242246
* An equal instance for the {@link Stream} type.
243247
*
@@ -530,4 +534,20 @@ public static <A, B> Equal<Writer<A, B>> writerEqual(Equal<A> eq1, Equal<B> eq2)
530534
return equal(w1 -> w2 -> p2Equal(eq1, eq2).eq(w1.run(), w2.run()));
531535
}
532536

537+
/**
538+
* @return Returns none if no equality can be determined by checking the nullity and reference values, else the equality
539+
*/
540+
public static Option<Boolean> shallowEqualsO(Object o1, Object o2) {
541+
if (o1 == null && o2 == null) {
542+
return Option.some(true);
543+
} else if (o1 == o2) {
544+
return Option.some(true);
545+
} else if (o1 != null && o2 != null) {
546+
java.lang.Class<?> c = o1.getClass();
547+
return c.isInstance(o2) ? Option.none() : Option.some(false);
548+
} else {
549+
return Option.some(false);
550+
}
551+
}
552+
533553
}

core/src/main/java/fj/F0.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package fj;
2+
3+
/**
4+
* Created by MarkPerry on 21/01/2015.
5+
*/
6+
public interface F0<A> {
7+
8+
public A f();
9+
10+
}

0 commit comments

Comments
 (0)