2
Church數可以在C++ 0x中表示使用該語言的新拉姆達部分使用類似this(C++ 11):表達Church數與Boost.Bind
typedef function<int(int)> F;
static const F id = [=](int x) { return x; };
function<F(F)> church(unsigned int i)
{
if(i == 0) {
return [=] (F f) { return id; };
}
return [=] (F f) {
F tmp = [=](int x) { return f(church(i-1)(f)(x)); };
return tmp;
};
}
是否有可能使用Boost.Bind和C++ 03來表達教會的數字?如果是這樣,怎麼樣?
這有助於很多,謝謝! – PaulH