typestar

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

  1. spawn(fun operator/0) arranca un proceso y responde su pid.
  2. Pid ! Mensaje es enviar y olvidar; self() nombra al remitente.
  3. La operadora vuelve a llamarse tras cada mensaje: ese es su bucle.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 1 de 4 en Procesos; paso 25 de 31 en Fundamentos del lenguaje.

← Anterior Siguiente →