C++로 순수함수형 프로그래밍

denmark114의 이미지
#include <iostream>
#include <functional>
#include <cstdint>

int main() {
	std::function<const uint64_t (const uint64_t)> factorial = [&](const uint64_t n) -> const uint64_t {
		if (n == 0) {
			return 1;
		}
		return n * factorial(n - 1);
	};
	{
		enum { NUM_ITERATION = 20 };
		std::function<void (const unsigned)> loop = [&](const unsigned n) -> void {
			if (n == 0) {
				return;
			}
			std::cout << factorial(NUM_ITERATION - n) << '\n';
			loop(n - 1);
		};
		loop(NUM_ITERATION);
	}
	return 0;
}


너무 지저분한가요? ^^

//HTML 꺽쇠 표시 안되는 문제 수정함...