From b44ace904d01840e1d14a3a34af83eb7763d80b9 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Fri, 30 Oct 2015 20:36:07 +0100 Subject: Add akkumulator --- src/akk.erl | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/akk.erl (limited to 'src') diff --git a/src/akk.erl b/src/akk.erl new file mode 100644 index 0000000..a5989f2 --- /dev/null +++ b/src/akk.erl @@ -0,0 +1,24 @@ +-module(akk). + +-export([new/0, add/1, flush/0, collect/1]). + +new() -> + register(akkPid, spawn(?MODULE, collect, [[]])). + +add(E) -> + akkPid ! {add, E}. + +flush() -> + akkPid ! {flush, self()}, + receive + L -> L + end. + +collect(L) -> + receive + {add, E} -> + collect(L ++ [E]); + {flush, Pid} -> + Pid ! L + end. + -- cgit v1.2.3