Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
21
Task/Averages-Mode/Erlang/averages-mode.erl
Normal file
21
Task/Averages-Mode/Erlang/averages-mode.erl
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
-module( mode ).
|
||||
-export( [example/0, values/1] ).
|
||||
|
||||
example() ->
|
||||
Set = [1, 2, "qwe", "asd", 1, 2, "qwe", "asd", 2, "qwe"],
|
||||
io:fwrite( "In ~p the mode(s) is(are): ~p~n", [Set, values(Set)] ).
|
||||
|
||||
values( Set ) ->
|
||||
Dict = lists:foldl( fun values_count/2, dict:new(), Set ),
|
||||
[X || {X, _Y} <- dict:fold( fun keep_maxs/3, [{0, 0}], Dict )].
|
||||
|
||||
|
||||
|
||||
keep_maxs( Key, Value, [{_Max_key, Max_value} | _] ) when Value > Max_value ->
|
||||
[{Key, Value}];
|
||||
keep_maxs( Key, Value, [{_Max_key, Max_value} | _]=Maxs ) when Value =:= Max_value ->
|
||||
[{Key, Value} | Maxs];
|
||||
keep_maxs( _Key, _Value, Maxs ) ->
|
||||
Maxs.
|
||||
|
||||
values_count( Value, Dict ) -> dict:update_counter( Value, 1, Dict ).
|
||||
Loading…
Add table
Add a link
Reference in a new issue