Я заинтересован в реальных примерах использования комбинатора неподвижной точки (например, в y-combinator в C++. Вы когда-нибудь использовал комбинатор неподвижной точки с egg или bind в реальном живом коде?неподвижные точка комбинаторов в C++
I нашел этот пример в яйце немного плотное:?
void egg_example()
{
using bll::_1;
using bll::_2;
int r =
fix2(
bll::ret<int>(
// \(f,a) -> a == 0 ? 1 : a * f(a-1)
bll::if_then_else_return(_2 == 0,
1,
_2 * lazy(_1)(_2 - 1)
)
)
) (5);
BOOST_CHECK(r == 5*4*3*2*1);
}
Можете ли вы объяснить, как это все работает
есть хороший простой пример, возможно, используя привязку с возможно меньшим количеством зависимостями, чем этот
Если вы пишете код, который выглядит так, что никто никогда не сможет его поддерживать, включая вас самих. – 2008-09-30 07:34:41
Моя мысль не в том, что я действительно хочу написать комбинаторы с фиксированной точкой или лямбда в C++, а скорее пример того, что на C++ будет назидать для кого-то вроде меня, который не все знает языки, на которых они могут быть более полезно. – 2008-10-01 06:36:39