1 // Copyright Louis Dionne 2013-2017 2 // Distributed under the Boost Software License, Version 1.0. 3 // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt) 4 5 #include <boost/hana/assert.hpp> 6 #include <boost/hana/config.hpp> 7 #include <boost/hana/functional/fix.hpp> 8 namespace hana = boost::hana; 9 10 __anonbbe7698d0102(auto fact, auto n) 11BOOST_HANA_CONSTEXPR_STATELESS_LAMBDA auto factorial = hana::fix([](auto fact, auto n) -> int { 12 if (n == 0) return 1; 13 else return n * fact(n - 1); 14 }); 15 main()16int main() { 17 BOOST_HANA_CONSTEXPR_CHECK(factorial(5) == 120); 18 } 19