Sha256: 15bd2b577d6c34fd4638d7ce6ed7a20ecf5990a8b7e437baeb000eaa01da2124

Contents?: true

Size: 828 Bytes

Versions: 22

Compression:

Stored size: 828 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

22 entries across 22 versions & 1 rubygems

Version Path
trackler-2.0.8.7 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.0.8.6 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.0.8.5 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.0.8.4 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.0.8.3 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.0.8.2 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.0.8.1 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.0.7.0 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.0.6.44 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.0.6.43 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.0.6.42 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.0.6.41 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.0.6.40 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.0.6.39 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.0.6.38 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.0.6.37 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.0.6.36 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.0.6.35 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.0.6.34 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
trackler-2.0.6.33 tracks/erlang/exercises/parallel-letter-frequency/src/example.erl