gpt4 book ai didi

erlang - 尾递归 pow Erlang

转载 作者:行者123 更新时间:2023-12-02 15:05:01 24 4
gpt4 key购买 nike

我有疑问,我必须为这个 pow 函数做一个尾递归:

pow(_, 0) -> 1;
pow(N, X) when X > 0 -> N * pow(N, X - 1).

我读过它,但我不完全明白,有人能解释一下如何在尾递归中使用这个函数吗?

最佳答案

基本上,在尾递归中,您需要另一个充当累加器的参数。

%% 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);

希望这能让您了解如何完成。

关于erlang - 尾递归 pow Erlang,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47255415/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com