Ich schreibe einen Code in Erlang, der eine Zufallszahl für eine zufällige Zeit generiert und jede Zahl zu einer Liste hinzufügt. Ich habe eine Funktion verwaltet, die Zufallszahlen generieren kann, und ich habe irgendwie eine Methode zum Hinzufügen zu einer Liste verwaltet, aber mein Hauptproblem ist die Beschränkung der Anzahl der Iterationen der Funktion. Ich mag die Funktion, um mehrere Zahlen zu produzieren und sie der Liste hinzuzufügen und dann diesen Prozess oder etwas ähnliches zu töten.
Hier ist mein Code so weit:Einschränken der Anzahl der Funktionsiterationen
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)])).
Ich weiß, es ist ein wenig schlampig und unvollständig, aber das ist nicht der Fall.