%% So the first step is to convert the pow function to the pow_tail function, and initialize the accumulator to the default value.
pow(N, X) -> pow_tail(N, X, 1);
%% Defined the base case for the pow_tail, to return the accumulator
pow_tail(_, 0, ACC) -> ACC;
%% Write the pow_tail function and store the result in the accumulator
pow_tail(N, X, ACC) when X > 0 -> pow_tail(N, X-1, ACC * N);
1条答案
按热度按时间smtd7mpg1#
基本上,在尾部递归中,你需要一个另一个参数作为累加器。
希望这能给你一个想法如何可以做到这一点。