[Programma non testato] -module(sumf). -export([sum/2,compute/3,coll/3,idd/1]). sum (F,N) -> Collector = spawn(sumf,coll,[N,0,self()]), [spawn(sumf,compute,[F,X,Collector]) || X <- lists:seq(1,N) ], receive {Collector,Res} -> Res end. compute (F,X,Collector) -> Collector!F(X). coll (N,Partial,PID) -> if N=:=0 -> PID!{self(),Partial}; true -> receive Fn -> coll(N-1, Partial+Fn,PID) end end. idd (N) -> N.