Skip to content

Instantly share code, notes, and snippets.

@mzemel
Created October 22, 2015 00:18
Show Gist options
  • Save mzemel/de4d5924a2c88d289fda to your computer and use it in GitHub Desktop.
Save mzemel/de4d5924a2c88d289fda to your computer and use it in GitHub Desktop.
defmodule Calculator do
use GenServer
###
# External API
def start_link(initial \\ 0) do
GenServer.start_link(__MODULE__, initial, name: __MODULE__)
end
def plus(number) do
GenServer.call(__MODULE__, {:plus, number})
end
def minus(number) do
GenServer.call(__MODULE__, {:minus, number})
end
def times(number) do
GenServer.call(__MODULE__, {:times, number})
end
def divided_by(number) do
GenServer.call(__MODULE__, {:divided_by, number})
end
###
# GenServer implementation
def handle_call({:plus, number}, _from, current_number) do
new_number = current_number + number
{:reply, new_number, new_number}
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment