take-a-number
This commit is contained in:
15
elixir/take-a-number/lib/take_a_number.ex
Normal file
15
elixir/take-a-number/lib/take_a_number.ex
Normal file
@@ -0,0 +1,15 @@
|
||||
defmodule TakeANumber do
|
||||
def start() do
|
||||
spawn(fn -> loop(0) end)
|
||||
end
|
||||
|
||||
defp loop(number) do
|
||||
new_state = receive do
|
||||
:stop -> exit(:ok)
|
||||
{:report_state, pid} -> send(pid, number)
|
||||
{:take_a_number, pid} -> send(pid, number + 1)
|
||||
_ -> number
|
||||
end
|
||||
loop(new_state)
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user