#include <functional>
int main(void)
{
std::function<double(int)> fact = [&](int n) -> double { return (n > 1)? n * fact(n-1): 1; };
}
I2luY2x1ZGUgPGZ1bmN0aW9uYWw+CgppbnQgbWFpbih2b2lkKQp7CiAgICBzdGQ6OmZ1bmN0aW9uPGRvdWJsZShpbnQpPiBmYWN0ID0gWyZdKGludCBuKSAtPiBkb3VibGUgeyByZXR1cm4gKG4gPiAxKT8gbiAqIGZhY3Qobi0xKTogMTsgfTsKfQ==