First commit

This commit is contained in:
Mariano Uvalle 2020-06-20 13:57:33 -05:00
commit 1dba0af064
36 changed files with 1065 additions and 0 deletions

View file

@ -0,0 +1,35 @@
defmodule Calculator do
def start do
spawn(fn -> loop(0) end)
end
defp loop(current_value) do
new_value =
receive do
message -> process_message(current_value, message)
end
loop(new_value)
end
defp process_message(current_value, {:value, caller}) do
send(caller, {:response, current_value})
current_value
end
defp process_message(current_value, {:add, value}) do
current_value + value
end
defp process_message(current_value, {:sub, value}) do
current_value - value
end
defp process_message(current_value, {:mul, value}) do
current_value * value
end
defp process_message(current_value, {:div, value}) do
current_value / value
end
end