私は、(私はのソートは、スキームにそれを理解する)とD 2.0でそれを実装Yコンビネータよりよく学ぶことをしようとしていると私はかなり惨めに失敗しています:DのY-コンビネータ?
auto fact = delegate(uint delegate(uint) recurse)
{
return delegate(uint n)
{
return n > 1 ? n * recurse(n - 1) : 1;
};
};
fact(fact)(5);
これにはありません私はfact
をfact
に渡すことができないという明白な理由のために働いています(そのタイプは何でしょうか?)。そして、私はまだfact
の名前を自分に渡す必要があるので、とにかくうまくいかないでしょうか?
しかし、私はどのようにDにY-コンビネータを実装するのですか?
デリゲートはすでに参照型です。あなたは '&'を削除できます。 – BCS
@BCS:良い点は、もともとの方法であり、私はそれを取り除くことを忘れてしまった。修正されます。 :) – Mehrdad