Sha256: 847d7926dff5609cc2caf8e34bcc147bb62582ba180874adafa9f0fc602f93c1

Contents?: true

Size: 826 Bytes

Versions: 288

Compression:

Stored size: 826 Bytes

Contents

-module(example).

-export( [dict/1, test_version/0] ).

dict( Texts ) ->
  Pids = [letter_frequency(X) || X <- Texts],
  Dicts = [receive_dict(X) || X <- Pids],
  merge_dicts( Dicts ).

test_version() ->
    1.


letter_frequency( String ) ->
  My_pid = erlang:self(),
  erlang:spawn( fun() -> My_pid ! {erlang:self(), letter_freqency_dict(String)} end ).

letter_freqency_dict( String ) ->
  lists:foldl( fun letter_freqency_dict/2, dict:new(), String ).

letter_freqency_dict( Character, Dict ) -> dict:update_counter( Character, 1, Dict ).

merge_dicts( [Dict | Dicts] ) ->
  lists:foldl( fun merge_dicts/2, Dict, Dicts ).

merge_dicts( Dict, Acc ) -> dict:merge( fun merge_dicts/3, Dict, Acc ).

merge_dicts( _Key, Value, Acc_value ) -> Value + Acc_value.

receive_dict( Pid ) ->
  receive
    {Pid, Dict} -> Dict
  end.

Version data entries

288 entries across 288 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.2.1.179 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.2.1.178 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.2.1.177 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.2.1.176 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.2.1.175 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.2.1.174 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.2.1.173 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.2.1.172 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.2.1.171 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.2.1.170 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.2.1.169 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.2.1.167 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.2.1.166 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.2.1.165 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.2.1.164 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.2.1.163 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.2.1.162 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.2.1.161 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.2.1.160 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl