http://www.marxidad.com/Aboutme
I first learned BASIC at age 11 on a Commodore 64.
Former SDET, ADO.NET Team @ Microsoft.
class Maybe<T>
{ T t;
Maybe(){}
public static Maybe<T> Just(T t){ return new Maybe<T>{t=t};}
static Maybe<T> nothing = new Maybe<T>();
public static Maybe<T> Nothing
{ get {return nothing;}
}
public Maybe<U> Select<U>(Func<T,U> f)
{ return Maybe<U>.Just(f(t));
}
public Maybe<V> SelectMany<U,V>(Func<T, Maybe<U>> f, Func<U,V> g)
{ var x = f(t);
if (x == Maybe<U>.Nothing) return Maybe<V>.Nothing;
return Maybe<V>.Just(g(x.t));
}
}