[erlang-questions] How to do counters?

Jarrod Roberson jarrod@REDACTED
Tue Jun 30 03:32:59 CEST 2009


2009/6/29 Witold Baryluk <baryluk@REDACTED>

> You can also use parametrized modules:
>
>
> -module(counter).
> -export([new/0]).
>
> new() ->
>        C = {counter,spawn(fun () -> loop(0) end)},
>        counter2:instance(Counter).
>
> loop(X) -> ...
>
>
> -module(counter, [Counter]). %% parametrized module
> -export([read/0, up/0, down/0, reset/0]).
>
> read() ->
>    ipc(Counter, read).
>
> ...
>
> Then just use:
>
> C1 = counter:new().
> C2 = counter:new().
> C1:up().
> C1:read().
> C2:read().


thanks for the responses guys I really appreciate the insight and help
getting my head around Erlang.

just for anyone else that has never heard of parametrized modules, I found
this interesting blog post:
http://userprimary.net/user/2009/03/04/two-erlang-finds-atomic-names-and-parameterized-modules/


More information about the erlang-questions mailing list