← Каталог
Простые приложения на Elixir — Характерный пример — pipe и процессы
Фрагмент из «Простые приложения на Elixir»: Характерный пример — pipe и процессы.
defmodule Counter do
def start, do: spawn(fn -> loop(0) end)
defp loop(n) do
receive do
:inc -> loop(n + 1)
{:get, pid} -> send(pid, n); loop(n)
end
end
end
pid = Counter.start()
send(pid, :inc)
send(pid, {:get, self()})
receive do: n when is_integer(n) -> IO.inspect(n) defmodule Counter do
def start, do: spawn(fn -> loop(0) end)
defp loop(n) do
receive do
:inc -> loop(n + 1)
{:get, pid} -> send(pid, n); loop(n)
end
end
end
pid = Counter.start()
send(pid, :inc)
send(pid, {:get, self()})
receive do: n when is_integer(n) -> IO.inspect(n)