<div dir="ltr">He's right. You are running the function once and passing the return value for every iteration. Your modified program should look like this:<br><br>-module(scrap).<br>-compile(export_all).<br><br>set_seed_to_now() -><br>
   {A1, A2, A3} = now(),<br>   random:seed( A1, A2, A3 ).<br><br>for( Max, Max, F ) -><br>   [<u><b>F()</b></u>];<br>for( I, Max, F ) -><br>   [<u><b>F()</b></u>|for( I+1, Max, F )].<br><br>random_tuple( Max ) -><br>
   { random:uniform( Max ), random:uniform( Max ) }.<br><br>random_tuples( Max, Num ) -><br>   set_seed_to_now(),<br>   for( 1, Num, <u><b>fun() -> random_tuple( Max ) end</b></u> ).<br><br><div class="gmail_quote">
On Sat, Aug 16, 2008 at 11:37 PM, Håkan Stenholm <span dir="ltr"><<a href="mailto:hokan.stenholm@bredband.net">hokan.stenholm@bredband.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d">Ron Peterson wrote:<br>
<br>
> When I compile the code below and run it, I get something like the<br>
> following:<br>
><br>
> 54> scrap:random_tuples( 20, 5 ).<br>
> [{3,9},{3,9},{3,9},{3,9},{3,9}]<br>
><br>
> I'm sure this is expected behaviour.  I'm just not yet familiar enough<br>
> with erlang to understand it.  Why isn't this the same as calling<br>
> random_tuple a number of times in succession?<br>
><br>
> TIA.<br>
><br>
> set_seed_to_now() -><br>
>     {A1, A2, A3} = now(),<br>
>     random:seed( A1, A2, A3 ).<br>
><br>
> for( Max, Max, F ) -><br>
>     [F];<br>
> for( I, Max, F ) -><br>
>     [F|for( I+1, Max, F )].<br>
><br>
> random_tuple( Max ) -><br>
>     { random:uniform( Max ), random:uniform( Max ) }.<br>
><br>
> random_tuples( Max, Num ) -><br>
>     set_seed_to_now(),<br>
>     for( 1, Num, random_tuple( Max ) ).<br>
</div>you probably want to do something like:<br>
<br>
for( 1, Num, fun() -> random_tuple( Max ) end).<br>
<br>
and call F in for(...) as F() so that you pass a function to for(...)<br>
to run in each iteration, rather than simply passing a precalculated<br>
value as you do right now.<br>
<div><div></div><div class="Wj3C7c">_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://www.erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://www.erlang.org/mailman/listinfo/erlang-questions</a><br>
</div></div></blockquote></div><br></div>