public static Func <A1, A2, A3, A4, A5, R> Normal <A1, A2, A3, A4, A5, R>(this Memoizable <A1, A2, A3, A4, A5, R> f) { Func <(A1, A2, A3, A4, A5), R> g = null; g = tuple => f((a1, a2, a3, a4, a5) => g((a1, a2, a3, a4, a5)))(tuple.Item1, tuple.Item2, tuple.Item3, tuple.Item4, tuple.Item5); return((a1, a2, a3, a4, a5) => g((a1, a2, a3, a4, a5))); }
public static Func <A, R> Normal <A, R>(this Memoizable <A, R> f) { Func <A, R> g = null; g = f(input => g(input)); return(g); }
public static Func <A1, A2, A3, R> Normal <A1, A2, A3, R>(this Memoizable <A1, A2, A3, R> f) { Func <(A1, A2, A3), R> g = null; g = tuple => f((a1, a2, a3) => g((a1, a2, a3)))(tuple.Item1, tuple.Item2, tuple.Item3); return((a1, a2, a3) => g((a1, a2, a3))); }
public static Func <A1, A2, A3, A4, A5, R> Memoized <A1, A2, A3, A4, A5, R>(this Memoizable <A1, A2, A3, A4, A5, R> f, int?maxSize = null) { var map = DictFactory <(A1, A2, A3, A4, A5), R>(maxSize); Func <(A1, A2, A3, A4, A5), R> memoized = null; Func <(A1, A2, A3, A4, A5), R> g = tuple => f((a1, a2, a3, a4, a5) => memoized((a1, a2, a3, a4, a5)))(tuple.Item1, tuple.Item2, tuple.Item3, tuple.Item4, tuple.Item5); memoized = MemoizeFunc(g, map); return((a1, a2, a3, a4, a5) => memoized((a1, a2, a3, a4, a5))); }
public static Func <A1, A2, R> Memoized <A1, A2, R>(this Memoizable <A1, A2, R> f, int?maxSize = null) { var map = DictFactory <(A1, A2), R>(maxSize); Func <(A1, A2), R> memoized = null; Func <(A1, A2), R> g = tuple => f((a1, a2) => memoized((a1, a2)))(tuple.Item1, tuple.Item2); memoized = MemoizeFunc(g, map); return((a1, a2) => memoized((a1, a2))); }
public static Func <A, R> Memoized <A, R>(this Memoizable <A, R> f, int?maxSize = null) { var map = DictFactory <A, R>(maxSize); Func <A, R> memoized = null; Func <A, R> g = f(input => memoized(input)); memoized = MemoizeFunc(g, map); return(memoized); }
public static Func <A1, A2, A3, A4, A5, A6, A7, R> Normal <A1, A2, A3, A4, A5, A6, A7, R>(this Memoizable <A1, A2, A3, A4, A5, A6, A7, R> f) { Func <(A1, A2, A3, A4, A5, A6, A7), R> g = null; g = tuple => f((a1, a2, a3, a4, a5, a6, a7) => g((a1, a2, a3, a4, a5, a6, a7)))(tuple.Item1, tuple.Item2, tuple.Item3, tuple.Item4, tuple.Item5, tuple.Item6, tuple.Item7); return((a1, a2, a3, a4, a5, a6, a7) => g((a1, a2, a3, a4, a5, a6, a7))); }
public static Func <A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, R> Memoized <A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, R>(this Memoizable <A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, R> f, int?maxSize = null) { var map = DictFactory <(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16), R>(maxSize); Func <(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16), R> memoized = null; Func <(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16), R> g = tuple => f((a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) => memoized((a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16)))(tuple.Item1, tuple.Item2, tuple.Item3, tuple.Item4, tuple.Item5, tuple.Item6, tuple.Item7, tuple.Item8, tuple.Item9, tuple.Item10, tuple.Item11, tuple.Item12, tuple.Item13, tuple.Item14, tuple.Item15, tuple.Item16); memoized = MemoizeFunc(g, map); return((a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) => memoized((a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16))); }
public static Func <A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, R> Normal <A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, R>(this Memoizable <A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, R> f) { Func <(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16), R> g = null; g = tuple => f((a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) => g((a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16)))(tuple.Item1, tuple.Item2, tuple.Item3, tuple.Item4, tuple.Item5, tuple.Item6, tuple.Item7, tuple.Item8, tuple.Item9, tuple.Item10, tuple.Item11, tuple.Item12, tuple.Item13, tuple.Item14, tuple.Item15, tuple.Item16); return((a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) => g((a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16))); }