Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在erlang中对整数列表使用foldl来返回最大整数?_Erlang_Max_Anonymous Function_Fold - Fatal编程技术网

如何在erlang中对整数列表使用foldl来返回最大整数?

如何在erlang中对整数列表使用foldl来返回最大整数?,erlang,max,anonymous-function,fold,Erlang,Max,Anonymous Function,Fold,我想使用下面的Erlang代码来获得整数列表中的最高整数,但由于某些原因,最终总是得到列表中的最后一个整数。有什么帮助吗 解决方案示例->test:max([2,8,5,6])。应返回8,但此代码返回6 -spec max(L) -> M when L::[integer()], M::integer(). max([H | T]) -> F = fun(L, Acc) -> max([L]) end, lists:foldl(F, H, T). 函数F应返回L和A

我想使用下面的Erlang代码来获得整数列表中的最高整数,但由于某些原因,最终总是得到列表中的最后一个整数。有什么帮助吗

解决方案示例->
test:max([2,8,5,6])。
应返回8,但此代码返回6

-spec max(L) -> M when
  L::[integer()],
  M::integer().

max([H | T]) ->
F = fun(L, Acc) -> max([L]) end,
lists:foldl(F, H, T).

函数
F
应返回
L
Acc
的最大值。您可以使用内置的
max/2
功能:

...
F = fun(L, Acc) -> max(L, Acc) end.
...
测试:

1>F=fun(L,Acc)->max(L,Acc)结束。
#乐趣
2> [H | T]=[2,8,5,6]。
[2,8,5,6]
3> 列表:foldl(F,H,T)。
8.

您的函数
F
应返回
L
Acc
的最大值。您可以使用内置的
max/2
功能:

...
F = fun(L, Acc) -> max(L, Acc) end.
...
测试:

1>F=fun(L,Acc)->max(L,Acc)结束。
#乐趣
2> [H | T]=[2,8,5,6]。
[2,8,5,6]
3> 列表:foldl(F,H,T)。
8.

您在函数
F
中返回的将是
Acc
的新值,并且最终值
将返回:foldl/3

您可能需要在
F
内进行比较,并检查
Acc
是否大于当前值。您不需要递归
max/1
,因为您正在迭代
lists:foldl/3
中的列表


如果您需要实际的代码,请立即告诉我,但我建议您自己解决。这样对您来说更有趣。

您在函数
F
中返回的将是
Acc
的新值,最终值
将返回:foldl/3

您可能需要在
F
内进行比较,并检查
Acc
是否大于当前值。您不需要递归
max/1
,因为您正在迭代
lists:foldl/3
中的列表

如果您需要实际的代码,请立即告诉我,但我建议您自己解决。这样对你来说更有趣