示例#1
0
        static Option <A> minMax <A, B, Coll>(
            this Coll c, Fn <A, B> extract, Comparable <B> comparable, CompareResult lookFor
            ) where Coll : IEnumerable <A>
        {
            var current = Option <A> .None;

            foreach (var a in c)
            {
                if (current.isNone)
                {
                    current = a.some();
                }
                else
                {
                    if (comparable.compare(extract(a), extract(current.get)) == lookFor)
                    {
                        current = a.some();
                    }
                }
            }
            return(current);
        }
示例#2
0
 public static bool eq <A>(this Comparable <A> cmp, A a1, A a2) => cmp.compare(a1, a2) == CompareResult.EQ;
示例#3
0
 public static bool gte <A>(this Comparable <A> cmp, A a1, A a2) => cmp.compare(a1, a2) != CompareResult.LT;
示例#4
0
 public static Comparable <B> comap <A, B>(this Comparable <A> cmp, Fn <B, A> mapper) =>
 Comparable.lambda <B>((b1, b2) => cmp.compare(mapper(b1), mapper(b2)));