Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace Ploeh.Samples.Booking.DomainModel
{
public class Maybe<T> : IEnumerable<T>
{
private readonly IEnumerable<T> values;
public Maybe()
{
this.values = new T[0];
}
public Maybe(T value)
{
this.values = new[] { value };
}
public IEnumerator<T> GetEnumerator()
{
return this.values.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return this.GetEnumerator();
}
}
public static class Maybe
{
public static Maybe<T> ToMaybe<T>(this T value)
{
return new Maybe<T>(value);
}
public static Maybe<T> Empty<T>()
{
return new Maybe<T>();
}
}
}
Монада Maybe на стероидах