返回列表的最大值

jar*_*ryd 5 erlang list sequential

我正在尝试返回列表的最大值。

我有以下代码

list_max([]) ->
    [];
list_max([H|T]) ->
    list_max(H, T).
list_max(Temp, []) ->
    Temp;
list_max(Temp, [H|T]) when H > Temp ->
    Temp = H;
list_max(Temp, T).
Run Code Online (Sandbox Code Playgroud)

但是我很难与Erlang联系。

如何为temp分配某些内容并将其替换为最高?

Mar*_*tos 5

Erlang 是我发现展示比解释更容易的语言之一。

list_max([]   ) -> empty;
list_max([H|T]) -> {ok, list_max(H, T)}.

list_max(X, []   )            -> X;
list_max(X, [H|T]) when X < H -> list_max(H, T);
list_max(X, [_|T])            -> list_max(X, T).
Run Code Online (Sandbox Code Playgroud)

并这样称呼它:

{ok, Max} = list_max(MyList).
Run Code Online (Sandbox Code Playgroud)


Maz*_*ake 5

抱歉,也许我错过了一些东西。您是否在寻找:

lists:max(List). %% Find the max in List
Run Code Online (Sandbox Code Playgroud)