-module(tang_sum).
-export([loop/1, sq/1, sum/2]).
%%主程序
loop(S) ->
Pid = spawn(fun() -> sq([]) end),
rpc(Pid, S).
%拼接字符返回
sq(L) ->
receive
{x, Num} ->
sq([Num | L]);
{ok} ->
L1 = lists:reverse(L),
io:format(" the L1 square is ~p~n", [L1]),
D = sum(L, 0),
io:format(" the L square sum is ~p~n", [D])
end.
%% 为每个数字创建进程发送平方函数
rpc(Pid, [H | T]) ->
spawn(fun() -> Pid ! {x, H * H} end),
rpc(Pid, T);
rpc(Pid, []) -> spawn(fun() -> Pid ! {ok} end).
%%计算总值
sum([], Sum) -> Sum;
sum([X | T], Sum) -> sum(T, Sum + X).
运行结果