Slide 15
Slide 15 text
GenServer で Stack を作る
defmodule Stack do
use GenServer
def start_link(pname) do
GenServer.start_link(__MODULE__, nil, name: pname)
end
def init(_arg) do
{:ok, []}
end
def push(pname, ele) do
GenServer.cast(pname, {:push, ele})
end
def handle_cast({:push, ele}, state) do
{:noreply, [ele, state]}
end
def pop(pname) do
GenServer.call(pname, :pop)
end
def handle_call(:pop, _from, [ele|rest]) do
{:reply, {:ok, ele}, rest}
end
end
⾼知⼯科⼤学 菊池豊
関数型まつり 2026-07-12