gpt4 book ai didi

concurrency - Erlang,如何在控制台中打印每个值?

转载 作者:行者123 更新时间:2023-12-04 07:39:59 26 4
gpt4 key购买 nike

我有一个 start() 函数,它生成一个进程并在该进程中多次运行一个方法,它是一个简单的计算器,所以每一行都说:
calculadora:contador({suma,1,1},Server) 将结果打印到控制台(在本例中为 1)。
问题是当 start 被调用时,它只打印 start 的最后一行,即:
calculadora:contador('exit',Server) 结果(好的,再见)。
所以我的问题是如何用这个 start 函数打印每个结果?

-module(calculadora).

-export([contador/2, loop/0, start/0]).

loop() ->
receive
{Pid, {suma, N1, N2}} ->
Pid ! N1 + N2,
loop();
{Pid, {resta, N1, N2}} ->
Pid ! N1 - N2,
loop();
{Pid, {multiplicacion, N1, N2}} ->
Pid ! N1 * N2,
loop();
{Pid, {division, N1, N2}} ->
Pid ! N1 / N2,
loop();
{Pid, exit} ->
Pid ! {"Bye"};
{Pid, _} ->
Pid ! {error, "wtf"},
loop()
end.

contador(X, Pid) ->
Pid ! {self(), X},
receive
{error, E} ->
{bad, E};
{Cont} ->
{ok, Cont};
R ->
{ok, R}
after 10 ->
{error, timeout}
end.

start() ->
Server = spawn(?MODULE, loop, []),
calculadora:contador({suma, 1, 1}, Server),
calculadora:contador({multiplicacion, 1, 1}, Server),
calculadora:contador({division, 1, 1}, Server),
calculadora:contador({resta, 1, 1}, Server),
calculadora:contador(exit, Server).

最佳答案

使用 io:format , 像这样:

io:format("Result: ~p~n", [calculadora:contador({suma,1,1},Server)]),

关于concurrency - Erlang,如何在控制台中打印每个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67537969/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com