|
namespace InnovEnergy.Lib.Utils;
|
|
|
|
internal delegate Func<T, R> Recursive<T, R>(Recursive<T, R> r);
|
|
|
|
|
|
|
|
public static class Combinator
|
|
{
|
|
public static Func<T, R> Y<T, R>(Func<Func<T, R>, Func<T, R>> f)
|
|
{
|
|
Func<T, R> Rec(Recursive<T, R> r) => t => f(r(r))(t);
|
|
|
|
return Rec(Rec);
|
|
}
|
|
} |