Functional programming 在Erlang中用作参数的函数

Functional programming 在Erlang中用作参数的函数,functional-programming,erlang,Functional Programming,Erlang,我正在尝试这样做: -模块(计数)。 -导出([main/0])。 求和(X,sum)->X+sum。 main()-> 列表:foldl(和,0,[1,2,3,4,5])。 但看到一个警告,代码失败: function sum/2 is unused 如何修复代码 NB:这只是一个说明问题的示例,因此没有理由提出使用fun-表达式的解决方案。Erlang对此有更明确的语法: -module(count). -export([main/0]). sum(X, Sum) -> X +

我正在尝试这样做:

-模块(计数)。
-导出([main/0])。
求和(X,sum)->X+sum。
main()->
列表:foldl(和,0,[1,2,3,4,5])。
但看到一个警告,代码失败:

function sum/2 is unused
如何修复代码


NB:这只是一个说明问题的示例,因此没有理由提出使用
fun
-表达式的解决方案。

Erlang对此有更明确的语法:

-module(count).
-export([main/0]).

sum(X, Sum) -> X + Sum.
main() ->
    lists:foldl(fun sum/2, 0, [1,2,3,4,5]).
另见“”:

如果写函数名时没有参数列表,那么这些名称将被解释为原子,原子不能是函数,因此调用失败

这就是为什么必须在语言中添加新的符号,以便让您从模块外部传递函数。这就是有趣的模块:函数/算术:它告诉VM使用特定的函数,然后将其绑定到一个变量


请发布一个可重现问题的模块的独立和最低版本。您可以尝试类似的smth吗
列表:foldl(fun(X,Sum)->X+Sum end,0,[1,2,3,4])。
?因为我手头没有erlang解释器now@ZagorulkinDmitry,您可以使用,尽管它不那么方便。谢谢@Atomic_alarm!