多くの関数型言語で表示されるC#で固定小数点ジェネレータを定義しようとしました。私はfoldrが固定小数点ジェネレータの点で通常定義されると信じています。私はハスケルの定義であることを示し、それから私はC#で何を持っているかを示します。どんな助けでも大歓迎です。C#Genericの固定小数点ジェネレータ
//Haskell
fix f = f (fix f)
//C# (Many attempts)
public static Func<Func<T, T>, T> Combinator1<T>(this Func<T, T> f)
{
return x => f(Combinator1(f)(x));
}
public static Func<Func<T, T>, T> Combinator2<T>(this Func<T, T> f)
{
return x => x(Combinator2(x)(f));
}
public static Func<T, U> Combinator3<T, U>(Func<Func<T, U>, Func<T, U>> f)
{
return f(x => Combinator3(f)(x));
}
どのような問題がありますか? – JaredPar
@JaredPar私はまだそれを使って関数を構築しようとしていませんでしたが、正しい定義を取得しようとしていました。ありがとう。 –
それでは、あなたは何を求めていますか? – JaredPar