[erlang-questions] beginner question
Håkan Stenholm
<>
Sun Aug 17 05:37:11 CEST 2008
Ron Peterson wrote:
> When I compile the code below and run it, I get something like the
> following:
>
> 54> scrap:random_tuples( 20, 5 ).
> [{3,9},{3,9},{3,9},{3,9},{3,9}]
>
> I'm sure this is expected behaviour. I'm just not yet familiar enough
> with erlang to understand it. Why isn't this the same as calling
> random_tuple a number of times in succession?
>
> TIA.
>
> set_seed_to_now() ->
> {A1, A2, A3} = now(),
> random:seed( A1, A2, A3 ).
>
> for( Max, Max, F ) ->
> [F];
> for( I, Max, F ) ->
> [F|for( I+1, Max, F )].
>
> random_tuple( Max ) ->
> { random:uniform( Max ), random:uniform( Max ) }.
>
> random_tuples( Max, Num ) ->
> set_seed_to_now(),
> for( 1, Num, random_tuple( Max ) ).
you probably want to do something like:
for( 1, Num, fun() -> random_tuple( Max ) end).
and call F in for(...) as F() so that you pass a function to for(...)
to run in each iteration, rather than simply passing a precalculated
value as you do right now.
More information about the erlang-questions
mailing list