namespace CategoryTheoryWithCSharp.Lecture6_Functors
public static partial class FunctionalExtensions
public static Func<T1> Select<T, T1>(this Func<T> @source, Func<T, T1> f)
return () => f(source());
public static void Main()
Func<int> factory = () => 2;
Func<int> factoryAdd1 = from c in factory select c+3;
var result = factoryAdd1();
Console.WriteLine(result);