My C++ sensible prelude.
at main 935 B view raw
1/* ======================================================================== 2 * 3 * Filename: main.cpp 4 * Description: Prelude testing file 5 * Author: Diego A. Estrada Rivera 6 * Version: 0.3.0 7 * 8 * ======================================================================== */ 9#include "prelude.hpp" 10#include <format> 11#include <span> 12 13/* === examples === */ 14fn ack_memo(U128 m, U128 n) noexcept -> U64 15{ 16 if (m == 0) 17 return n + 1; 18 if (n == 0) 19 return memoize<U128, U128>(ack_memo)(m - 1, 1); 20 return memoize<U128, U128>(ack_memo)( 21 m - 1, memoize<U128, U128>(ack_memo)(m, n - 1)); 22} 23 24fn ack(U64 m, U64 n) noexcept -> U64 25{ 26 if (m == 0) 27 return n + 1; 28 if (n == 0) 29 return ack(m - 1, 1); 30 return ack(m - 1, ack(m, n - 1)); 31} 32 33proc Main([[maybe_unused]] std::span<const std::string_view> args) noexcept 34 -> I32 35{ 36 std::cout << ack_memo(4, 1) << std::endl; 37 std::cout << ack(4, 1) << std::endl; 38 39 return 0; 40}