我正在Erlang编写一个代码,它假设随机生成一个随机数并将每个数添加到列表中。我管理一个函数,可以生成随机数,我有点管理一个方法将它添加到列表中,但我的主要问题是限制函数的迭代次数。我喜欢这个函数来生成几个数字并将它们添加到列表中,然后杀死该进程或类似的东西。
这是到目前为止我的代码:限制函数迭代次数
generator(L1)->
random:seed(now()),
A = random:uniform(100),
L2 = lists:append(L1,A),
generator(L2),
producer(B,L) ->
receive
{last_element} ->
consumer ! {lists:droplast(B)}
end
consumer()->
timer:send_after(random:uniform(1000),producer,{last_element,self()}),
receive
{Answer, Producer_PID} ->
io:format("the last item is:~w~n",[Answer])
end,
consumer().
start() ->
register(consumer,spawn(lis,consumer,[])),
register(producer,spawn(lis,producer,[])),
register(generator,spawn(lis,generator,[random:uniform(10)])).
我知道这是一个有点草率和不完整的,但事实并非如此。