spawn y enviar en Erlang
Un proceso es barato; ! envía, receive espera un match.
%% A process is cheap; ! sends, receive waits for a match.
operator() ->
receive
{connect, From, Line} ->
From ! {ok, Line},
operator();
hang_up ->
ok
end.
main(_) ->
Pid = spawn(fun operator/0),
Pid ! {connect, self(), 7},
receive
{ok, Line} -> io:format("Patched through line ~p~n", [Line])
end,
Pid ! hang_up,
io:format("Board closed~n").
Cómo funciona
spawn(fun operator/0)arranca un proceso y responde su pid.Pid ! Mensajees enviar y olvidar;self()nombra al remitente.- La operadora vuelve a llamarse tras cada mensaje: ese es su bucle.
Palabras clave y builtins usados aquí
endfunreceivespawn
El intento, en números
- Líneas
- 18
- Caracteres a escribir
- 342
- Tokens
- 100
- Ritmo de tres estrellas
- 60 tpm
Al ritmo de tres estrellas de 60 tokens por minuto, este intento toma unos 100 segundos.
Paso 1 de 4 en Procesos; paso 25 de 31 en Fundamentos del lenguaje.