Der Prozess adder2
, wie in Erlang implementiert, hat die Signatur: adder2 (In0, In1, Kill, Out) ->
...Wie implementiert man einen Prozess, der zwei Nachrichten empfängt und die beiden Zahlen in Erlang addiert?
Die drei Nachrichten, die an diesem Prozess gesendet werden können, werden wie in dem Diagramm gezeigt : {In0, Msg}
, {In1, Msg}
und {Kill}
, wobei In0
, In1
und Kill
sind in den Argumenten der Funktion angegeben und identifizieren den Typ der Nachricht.
Der Prozess selbst wartet auf beide Eingangsnachrichten, wobei Msg
einen ganzzahligen Wert darstellt, der kommuniziert wird. Sobald beide Eingänge empfangen wurden, wird die Summe dieser Eingänge an den als Out
identifizierten Prozess ausgegeben.
Bei jeder Zeit, während auf die Eingaben gewartet wird, kann eine Kill
Nachricht gesendet werden, auf die sie antworten sollte, indem sie normal beendet.
Stellen Sie eine Implementierung dieses Prozesses mit der oben angegebenen Signatur bereit.
Ich verstehe, dass es einen Empfang Ausdruck für In0
, In1
und Kill
Nachrichten geben muss. Allerdings kenne ich nicht die richtige Syntax, um die Nachrichten in beliebiger Reihenfolge empfangen zu können. Kann mir jemand dabei helfen?
Ich bin mir auch unsicher, die richtige Syntax für das Hinzufügen der beiden Werte zusammen.
Die Ausgabe würde erfordern, dass sie einem Ergebniswert zugewiesen und an den Out-Prozess gesendet werden, z. B. Out ! Result
.