public String CloudThoughts{ get; set;}
Func<int, int> fib = null;fib = n => n > 1 ? fib(n - 1) + fib(n - 2) : n;
public static Func<A, R> Memoize<A, R>(this Func<A, R> f){ var map = new Dictionary<A, R>(); return a => { R value; if (map.TryGetValue(a, out value)) return value; value = f(a); map.Add(a, value); return value; };}
Func<int, int> fib = null;fib = n => n > 1 ? fib(n - 1) + fib(n - 2) : n;fib = fib.Memoize();