Erlang Start![3]
练习链接: http://erlang.org/course/exercises.html
题目:
1. Write a function lists1:min(L) which returns the mini- mum element of the list L.
题目:
1. Write a function lists1:min(L) which returns the mini- mum element of the list L.
2. Write a function lists1:max(L) which returns the maximum element of the list L.
3. Write a function lists1:min_max(L) which returns a tuple containing the min and max of the list L.
> lists1:min_max([4,1,7,3,9,10])回答:
{1, 10}
%% Author: Quon
%% Created: 2009-8-7
%%File: lists1.erl
-module(lists1).
-export([max/1,min/1,min_max/1]).
%Ex1
max([F | R]) ->
max(R,F).
max([], M) ->
M;
max([F | R], M) ->
if
F >= M ->
max(R, F);
F < M ->
max(R, M)
end.
%---------------------------------------+
%Ex2
min([], M) ->
M;
min([F | R], M) ->
if
F >= M ->
min(R, M);
F < M ->
min(R, F)
end.
min([F | R]) ->
min(R,F).
%--------------------------------------+
%Ex3
min_max([], {Min, Max}) ->
{Min,Max};
min_max([F | R], {Min, Max}) ->
if
F >= Max ->
min_max(R, {Min, F});
F < Min ->
min_max(R, {F, Max});
true ->
min_max(R, {Min, Max})
end.
min_max([F | R]) ->
min_max(R, {F, F}).
%% Created: 2009-8-7
%%File: lists1.erl
-module(lists1).
-export([max/1,min/1,min_max/1]).
%Ex1
max([F | R]) ->
max(R,F).
max([], M) ->
M;
max([F | R], M) ->
if
F >= M ->
max(R, F);
F < M ->
max(R, M)
end.
%---------------------------------------+
%Ex2
min([], M) ->
M;
min([F | R], M) ->
if
F >= M ->
min(R, M);
F < M ->
min(R, F)
end.
min([F | R]) ->
min(R,F).
%--------------------------------------+
%Ex3
min_max([], {Min, Max}) ->
{Min,Max};
min_max([F | R], {Min, Max}) ->
if
F >= Max ->
min_max(R, {Min, F});
F < Min ->
min_max(R, {F, Max});
true ->
min_max(R, {Min, Max})
end.
min_max([F | R]) ->
min_max(R, {F, F}).