functional programming - How can I handle Account Number in erlang? -
i'm making bank account management system using ets hold current , savings account, i'm unable figure out how can generate , retain series of account numbers since erlang variables immutable.
so how can implement function generate , save account number next time account created allocates next account number previous one?
you can create process keep current number in state. obtain next number have send message process , returns next number , save in state. that's example of implementation gen_server:
-module(acc_number). -behavior(gen_server). -export([start_link/0, get_number/0]). -export([init/1, handle_call/3]). -define(server, ?module). -record(state, {number}). start_link() -> gen_server:start_link({local, ?server}, ?module, [], []). get_number() -> gen_server:call(?server, get_number). init([]) -> {ok, #state{number = 0}}. handle_call(get_number, _from, #state{number = number}) -> nextnumber = number + 1, {reply, nextnumber, #state{number = nextnumber}}. note: in example implemented callbacks used solve task. have implement callback of gen_server.
so obtain next number can this:
acc_number:start_link(). accountnumber = acc_number:get_number().
Comments
Post a Comment