2
我想學習erlang。這是計算平方面積的基本服務器。它的erlang white papererlang - 接收環路模式匹配問題
這裏例如6的修改版本的代碼是:
-module(area_server).
-export([start/0, loop/0]).
start() ->
spawn(area_server, loop, []).
loop() ->
receive
{Client, {square, X}} ->
Client ! X*X,
loop()
end.
我的問題是,它似乎我可以綁定X到只有一個值。綁定到任何其他值不起作用。要測試,我有以下代碼:
Server = area_server:start().
%Works and returns 100
Server ! {self(), {square, 10}}, receive Area -> Area end.
%Does not work and just does not return at all
Server ! {self(), {square, 5}}, receive Area -> Area end.
那麼我該如何計算5的平方?
好的。所以看起來問題不在於服務器,而在客戶端代碼中。因爲我接收到一個名爲'Area'的變量,並且它被綁定到100次,之後它不能被綁定到25.因此,如果我在第二次調用中更改爲'Area1',它將起作用。 – arahant