Sha256: 1858487a04f1c398ed5d5a889063e9f758aed884a65a5403dd66338a7b0f8407

Contents?: true

Size: 570 Bytes

Versions: 84

Compression:

Stored size: 570 Bytes

Contents

-module(word_count).
-export([count/1]).

-spec count(string()) -> dict:dict(string(), integer()).
count(S) ->
  lists:foldl(fun (K, Acc) -> dict:update_counter(K, 1, Acc) end,
              dict:new(),
              tokenize(string:to_lower(S))).

is_alnum(C) ->
  (C >= $a andalso C =< $z) orelse (C >= $0 andalso C =< $9).

is_sep(C) ->
  not is_alnum(C).

tokenize([]) ->
  [];
tokenize(S) ->
  case lists:splitwith(fun is_alnum/1, lists:dropwhile(fun is_sep/1, S)) of
    {[], Rest} ->
      tokenize(Rest);
    {Word, Rest} ->
      [Word | tokenize(Rest)]
  end.

Version data entries

84 entries across 84 versions & 1 rubygems

Version Path
trackler-2.0.6.28 tracks/erlang/exercises/word-count/example.erl
trackler-2.0.6.27 tracks/erlang/exercises/word-count/example.erl
trackler-2.0.6.26 tracks/erlang/exercises/word-count/example.erl
trackler-2.0.6.25 tracks/erlang/exercises/word-count/example.erl
trackler-2.0.6.24 tracks/erlang/exercises/word-count/example.erl
trackler-2.0.6.23 tracks/erlang/exercises/word-count/example.erl
trackler-2.0.6.22 tracks/erlang/exercises/word-count/example.erl
trackler-2.0.6.21 tracks/erlang/exercises/word-count/example.erl
trackler-2.0.6.20 tracks/erlang/exercises/word-count/example.erl
trackler-2.0.6.19 tracks/erlang/exercises/word-count/example.erl
trackler-2.0.6.18 tracks/erlang/exercises/word-count/example.erl
trackler-2.0.6.17 tracks/erlang/exercises/word-count/example.erl
trackler-2.0.6.16 tracks/erlang/exercises/word-count/example.erl
trackler-2.0.6.15 tracks/erlang/exercises/word-count/example.erl
trackler-2.0.6.14 tracks/erlang/exercises/word-count/example.erl
trackler-2.0.6.13 tracks/erlang/exercises/word-count/example.erl
trackler-2.0.6.12 tracks/erlang/exercises/word-count/example.erl
trackler-2.0.6.11 tracks/erlang/exercises/word-count/example.erl
trackler-2.0.6.10 tracks/erlang/exercises/word-count/example.erl
trackler-2.0.6.9 tracks/erlang/exercises/word-count/example.erl