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)); } }