erlang 去重
lists:usort/111> A=.12> lists:usort(A).
13> 也是用er编写的-module (un).
-mode (compile).
-define (PP (V), io:format ("~s = ~p~n", [??V, V])).
unique (A) -> unique (A, []).
unique ([], A) -> lists:reverse (A);
unique (, A) ->
case lists:member (H, A) of
true -> unique (T, A);
____ -> unique (T, )
end.
unik (L) -> unik (L, sets:new()).
unik ([], S) -> sets:to_list (S);
unik (, S) ->
case sets:is_element (H, S) of
true -> unik (T, S);
____ -> unik (T, sets:add_element (H, S))
end.
main (_) ->
L = ,
TU1 = timer:tc (fun unique/1, ),
TU2 = timer:tc (fun unik/1, ),
TU3 = timer:tc (fun lists:usort/1, ),
?PP (L), ?PP (TU1), ?PP (TU2), ?PP (TU3),
halt().
L =
TU1 = {5,}
TU2 = {23,}
TU3 = {6,}
回复 2# patagonia2
好奇你是怎么运行的? main(_) ..... 回复 3# shijiang1130
{:yxh71:}
escript file.erl er语言中也有宏的概念,宏也就是宏-define (Uniq(V), sets:to_list(sets:from_list(L))).
很相似。
页:
[1]