[erlang-questions] Programming a recursive function that executes n times

Raimo Niskanen <>
Fri Oct 22 09:30:52 CEST 2010

On Thu, Oct 21, 2010 at 11:11:01AM -0500, Fabio Miranda wrote:
> Hello,
> I want to simulate a time consuming task on Erlang, let's say I want to execute 10 000 times the above line:
> test_mnesia:busqueda(cars).
> How can I accomplish this on Erlang?

Er, is this an absolute beginners question, or is it
an intricate expert question that I am missing the point in?...

Assuming it is an absolute beginners question this might worth the reading:

And here is an uncompiled program for you:
repeat(Fun, N) when is_function(Fun, 0), is_integer(N), N >= 0 ->
    if  N > 0 ->
	    repeat(Fun, N-1);
	true ->

Call as:
    foo:repeat(fun () -> test_mnesia:busqueda(cars) end, 10000)

Another poster gave you an equivalent answer using a shell fun,
which is a wee bit more complicated but you it depends if
you want to do it from the shell or from a program.

If you want to collect the results another poster gave you a
suggestion a'la (allready in stdlib, just call):
    [test_mnesia:busqueda(cars) || X <- lists:seq(1, 10000)]
You get the results in a list, and can do it either from
the shell or from a program.

> thanks,
> fabio.

/ Raimo Niskanen, Erlang/OTP, Ericsson AB

More information about the erlang-questions mailing list