gpt4 book ai didi

erlang - 如何计算数字之和,以便 sum(4) 可以得到 1+2+3+4

转载 作者:行者123 更新时间:2023-12-02 06:39:07 25 4
gpt4 key购买 nike

-module(test).
-export([sum/1]).

sum([]) -> 0;
sum([X|Xs]) -> X + sum(Xs)

这就是我到目前为止所做的,尽管它只对 test:sum([1,2,3,4]) 等列表中的数字求和

但我想要它,这样 test:sum(4) 将输出 1+2...+n

我该怎么做?

最佳答案

您提供的此函数将对列表中的值求和,但如果您想“重载”此函数以也支持整数,那么您可以编写:

-module(test).
-export([sum/1]).

sum([]) -> 0;
sum([X|Xs]) -> X + sum(Xs);

sum(0) -> 0;
sum(N) when is_integer(N) -> (N * (N + 1)) div 2.

这使用模式匹配来检查参数的类型,然后选择要评估的函数的正确“版本”。

关于erlang - 如何计算数字之和,以便 sum(4) 可以得到 1+2+3+4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55045694/

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