lib/counter_agent.ex
defmodule CounterAgent do
def new do
Agent.start_link(fn -> 0 end)
end
def click(pid) do
Agent.get_and_update(pid, fn n -> {n + 1, n + 1} end)
end
def set(pid, new_value) do
Agent.update(pid, fn _n -> new_value end)
end
def get(pid) do
Agent.get(pid, fn n -> n end)
end
end