Esempio n. 1
0
        public static async Task <Maybe <T> > WhereAsync <T>(
            this Maybe <T> @this,
            Func <T, Task <bool> > predicate)
        {
            if (predicate is null)
            {
                throw new Anexn(nameof(predicate));
            }

            return(await @this.BindAsync(__).ConfigureAwait(false));

            async Task <Maybe <T> > __(T x)
            => await predicate(x).ConfigureAwait(false) ? @this : Maybe <T> .None;
        }