-module(sum). -export([sum_m_n/2, sum_m_n_i/2]). sum_m_n(M, N) when M > N -> 0; sum_m_n(M, N) -> M + sum_m_n(M+1, N). % The same function reimplemented using tail-recursion sum_m_n_i(M, N, Acc) when M > N -> Acc; sum_m_n_i(M, N, Acc) -> sum_m_n_i(M+1, N, Acc + M). % We define a convenience function sum_m_n_i(M, N) -> sum_m_n_i(M, N, 0).