Esteu aquí: Inici Assignatures Programació Concurrent i en Temps Real Erlang: Exemples calculadora.erl

calculadora.erl

calculadora.erl — Erlang source code, 729 bytes

Continguts del fitxer

-module(calculadora).
-export([inici/0]).

inici () ->
    spawn(fun calcular/0).

calcular() ->
    receive
        {suma, X, Y} ->
            io:format ("~p + ~p = ~p ~n", [X, Y, X+Y]),
            calcular();
        {resta, X, Y} ->
            io:format ("~p - ~p = ~p ~n", [X, Y, X-Y]),
            calcular();
        {multiplica, X, Y} ->
            io:format ("~p * ~p = ~p ~n", [X, Y, X*Y]),
            calcular();
        {divideix, X, Y} when Y > 0 ->
            io:format ("~p / ~p = ~p ~n", [X, Y, X/Y]),
            calcular();
        finalitzar ->
            void;
        Altre ->
            io:format("Error: comanda <~p> incorrecte~n", [Altre]), 
            calcular()
    end.