// Monad public static IReservationsProgram <TResult> SelectMany <T, TResult>( this IReservationsProgram <T> source, Func <T, IReservationsProgram <TResult> > selector) { return(source.Accept( new SelectManyReservationsProgramVisitor <T, TResult>( selector))); }
public static IReservationsProgram <IMaybe <TResult> > SelectMany <T, U, TResult>( this IReservationsProgram <IMaybe <T> > source, Func <T, IReservationsProgram <IMaybe <U> > > k, Func <T, U, TResult> s) { return(source .SelectMany(x => k(x) .SelectMany(y => new Pure <IMaybe <TResult> >(new Just <TResult>(s(x, y)))))); }
public static IReservationsProgram <IMaybe <TResult> > Select <T, TResult>( this IReservationsProgram <IMaybe <T> > source, Func <T, TResult> selector) { return(source.SelectMany(x => new Pure <IMaybe <TResult> >(new Just <TResult>(selector(x))))); }
public static IReservationsProgram <IMaybe <TResult> > SelectMany <T, TResult>( this IReservationsProgram <IMaybe <T> > source, Func <T, IReservationsProgram <IMaybe <TResult> > > selector) { return(source.SelectMany(x => x.Accept(new SelectManyMaybeVisitor <T, TResult>(selector)))); }